#include <bits/stdc++.h>
using namespace std;
int t,m;
int a,b,c;
int w,n,d,k;
map<int,int > ma;
inline int gcd(int x,int y){
if(y == 0) return x;
return gcd(y,x%y);
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
for(int i = 0; i*i <= 1000; i++){
ma[i*i] = i;
}
cin >> t >> m;
while(t--){
cin >> a >> b >> c;
if(b*b-4*a*c < 0){
cout << "NO\n";
continue;
}
w = -b;
n = 2*a;
d = b*b-4*a*c;
k = 2*a;
int qwq = 1;
int a1,a2;
a1 = a2 = 1;
if(d == 0){
if(w == 0){
cout << 0 << '\n';
}else{
if(w < 0){
w *= -1;
a1 *= -1;
}
if(n < 0){
n *= -1;
a1 *= -1;
}
int p = gcd(w,n);
w /= p;
n /= p;
if(n == 1){
cout << a1*w << '\n';
}else{
cout << a1*w << '/' << n << '\n';
}
}
continue;
}
bool sq = 1;
if(w < 0){
w *= -1;
a1 *= -1;
}
if(n < 0){
n *= -1;
a1 *= -1;
}
if(k < 0){
k *= -1;
a2 = 1;
}
if(ma.find(abs(d)) != ma.end()){
d = ma[abs(d)];
sq = false;
}
int p = gcd(w,n);
w /= p;
n /= p;
if(!sq){
p = gcd(d,k);
d /= p;
k /= p;
if(n == 1 && k == 1){
cout << a1*w + d << '\n';
}else if(n == 1){
cout << a1*w*k + d << '/' << k << '\n';
}else if(k == 1){
cout << a1*w + d*n << '/' << n << '\n';
}else{
w *= k;
d *= n;
n *= k;
w = a1*w+d;
p = gcd(w,n);
w /= p;
n /= p;
if(n != 1) cout << w << '/' << n << '\n';
else cout << w << '\n';
}
}else{
if(w != 0){
if(n != 1) cout << a1*w << '/' << n;
else cout << a1*w;
}
if(w != 0) cout << '+';
for(int i = floor(sqrt(d*1.0)); i > 1; i--){
if(d % (i*i) == 0){
d /= (i*i);
qwq *= i;
}
}
p = gcd(qwq,k);
qwq /= p;
k /= p;
if(qwq == 1){
cout << "sqrt(" << d << ")";
}else{
cout << qwq << "*sqrt(" << d << ")";
}
if(k != 1){
cout << '/' << k << '\n';
}else cout << '\n';
}
}
return 0;
}