#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int t, m, a, b, c;
void youli(int p, int q) {
int gcd = __gcd(p, q);
q = q / gcd, p = p / gcd;
if(q < 0) q = -q, p = -p;
cout << p;
if(q != 1) cout << '/' << q;
}
int huajian(int delta) {
int ans = 1;
for (int i = 2; i * i <= delta; i ++)
while(delta % (i * i) == 0)
{
ans *= i;
delta /= i * i;
}
return ans;
}
void wuli(double xi, int k, int delta) {
if(xi == 1 || xi == 0) cout << "sqrt(" << delta << ")" << endl;
else if(xi == floor(xi)) cout << abs(xi) << '*' << "sqrt(" << delta << ")" << endl;
else if(1 / xi == floor(1 / xi) && 1 / xi != 0) cout << "sqrt(" << delta << ")/" << 1 / xi << endl;
else
{
int gcd = __gcd(a * 2, k);
int q = a * 2 / gcd, p = k / gcd;
if(q < 0) q = -q, p = -p;
if(p != 1 && p != 0) cout << abs(p) << '*';
cout << "sqrt(" << delta << ")/" << abs(q) << endl;
}
}
int main() {
cin >> t >> m;
while(t --) {
cin >> a >> b >> c;
int delta = b * b - 4 * a * c;
if(delta < 0) cout << "NO" << endl;
else if(delta == 0) {
if(b % (a * 2) == 0) cout << -b / (a * 2) << endl;
else {
int gcd = __gcd(a * 2, -b);
int q = a * 2 / gcd, p = -b / gcd;
if(q < 0) q = -q, p = -p;
youli(p, q);
cout << endl;
}
}
else {
if(sqrt(delta) == floor(sqrt(delta))) {
int x = -b + sqrt(delta) / (2 * a);
int y = -b - sqrt(delta) / (2 * a);
if(x > y) youli(-b + sqrt(delta), 2 * a);
else youli(-b - sqrt(delta), 2 * a);
}
else {
bool flag = false;
if(1.0 * (-b) / (2 * a) != 0) {
int gcd = __gcd(abs(a * 2), abs(-b));
int q = a * 2 / gcd, p = -b / gcd;
if(q < 0) q = -q, p = -p;
youli(p, q);
flag = true;
}
int k = huajian(delta);
delta /= k * k;
double xi = fabs(1.0 * k / (2 * a));
if(xi < 0) cout << '-';
else cout << '+';
wuli(xi, k, delta);
}
}
}
return 0;
}