#include <bits/stdc++.h>
using namespace std;
map<int, int>mp;
inline int fastpow(int a, int b)
{
if(b == 0) return 1;
if(b == 1) return a;
int tmp = fastpow(a, b/2);
if(b & 1) return tmp*tmp*a;
return tmp*tmp;
}
inline bool n2(int n)
{
int sqr = sqrt(n);
return sqr*sqr == n;
}
inline int gcd(int a, int b)
{
return b ? gcd(b, a%b) : a;
}
inline void print(double v)
{
int flag = 1;
if(v < 0)
{
v = -v;
flag = -1;
}
int p, q;
for(q = 1;;++q)
{
p = v*q;
if(v*q == p && gcd(p, q) == 1) break;
}
if(q == 1) cout << v*flag;
else cout << p*flag << "/" << q;
}
inline void px(int n)
{
mp.clear();
int tmp = n;
for(int i = 2;i <= n/i;++i)
{
while(tmp % i == 0)
{
tmp /= i;
mp[i]++;
}
if(tmp == 1) return;
}
if(tmp > 1) mp[tmp]++;
}
inline pair<int, int> cd(double v)
{
int flag = 1;
if(v < 0)
{
v = -v;
flag = -1;
}
int c, d;
for(d = 2;;++d)
{
c = v*d;
if(c > 1 && d > 1 && v*d == c && gcd(c, d) == 1) break;
}
return make_pair(c*flag, d);
}
int main()
{
int t, m, a, b, c;
scanf("%d%d", &t, &m);
while(t--)
{
scanf("%d%d%d", &a, &b, &c);
int tri = b*b-4*a*c;
if(tri < 0)
{
printf("NO\n");
continue;
}
double x;
if(n2(tri))
{
x = (-b+sqrt(tri))/(2*a);
print(x);
cout << "\n";
continue;
}
double q1 = 1.0*(-b)/(2*a);
if(q1 != 0)
{
print(q1);
cout << "+";
}
px(tri);
double m1 = 1.0;
for(auto i : mp)
m1 *= fastpow(i.first, i.second/2*2);
double q2 = sqrt(m1)/(2*a);
double q3 = 1.0/q2;
int r = tri/m1;
if(q2 == 1) printf("sqrt(%d)\n", r);
else if((int)(q2) == q2)
{
cout << q2;
printf("*sqrt(%d)\n", r);
}
else if((int)(q3) == q3)
{
printf("sqrt(%d)/", r);
cout << q3 << "\n";
}
else
{
pair<int, int>fj = cd(q2);
cout << fj.first;
printf("*sqrt(%d)/", r);
cout << fj.second << "\n";
}
}
return 0;
}