#include <iostream>
#include <map>
#include <algorithm>
#include <cmath>
#include <stdio.h>
using namespace std;
long long isPrime(long long n){
map<int,int> num;
int result = 0;
if(n==0 || n==1){
return n;
}
else{
for(int i=2;i*i<=n;i++){
while(n%i == 0){
num[i]++;
n /= i;
}
if(num[i]>=2){
if(result == 0)
result = pow(i,(num[i]/2));
else
result *= pow(i,(num[i]/2));//偶数个可以开方
}
}
return result;
}
}
long long GCD(long long a,long long b){
if(b==0)
return a;
else
return GCD(b,a%b);
}
int main(){
long long T,M;
long long a,b,c;
long long value;
cin>>T>>M;
for(int i=1;i<=T;i++){
cin>>a>>b>>c;
//cout<<i<<" "<<a<<" "<<b<<" "<<c<<" ";
value = b*b-4*a*c;
if(value<0){
cout<<"NO"<<'\n';
}
else{
//开始
long long s = 0;
s = isPrime(value);
//cout<<value<<'\t'<<s<<'\n';
long long ss;
if(s == 0 || s*s==value){
ss = 0;
}
else{
ss = value/(s*s);
}
//无理数
if(value==0 || value==1){
//cout<<"ok";
long long tmpx;
if(a>0){
tmpx = -b+value;
}
else{
tmpx = -b-value;
}
long long gcd = GCD(tmpx,2*a);
long long x = (tmpx)/gcd;
long long y = 2*a/gcd;
if((x>0&&y>0) || (x<0&&y<0)){
if(abs(y)==1){
printf("%lld",abs(x));
cout<<'\n';
}
else{
printf("%lld/%lld",abs(x),abs(y));
cout<<'\n';
}
}
else{
if(abs(y)==1){
if(abs(x)==0){
printf("%lld",abs(x));
cout<<'\n';
}
else{
printf("-%lld",abs(x));
cout<<'\n';
}
}
else{
printf("-%lld/%lld",abs(x),abs(y));
cout<<'\n';
}
}
}
else if(s == 0){
//cout<<"one"<<'\n';
long long gcd = GCD(-b,2*a);
long long x = -b/gcd;
long long y = 2*a/gcd;
if((x>0&&y>0) || (x<0&&y<0)){
if(abs(y)==1){
printf("%lld+sqrt(%lld)",abs(x),value);
printf("\n");
}
else{
printf("%lld/%lld+sqrt(%lld)/%lld",abs(x),abs(y),value,abs(2*a));
printf("\n");
}
}
else{
if(abs(y)==1)
if(b==0){
printf("sqrt(%lld)",value);
printf("\n");
}
else{
printf("-%lld+sqrt(%lld)",abs(x),value);
printf("\n");
}
else
if(b==0){
printf("sqrt(%lld)/%lld",value,abs(2*a));
printf("\n");
}
else{
printf("-%lld/%lld+sqrt(%lld)/%lld",abs(x),abs(y),value,abs(2*a));
printf("\n");
}
}
}
//部分可开方
else if(s>0&&ss>1){
//cout<<"two"<<'\n';
long long gcd = GCD(-b,2*a);
long long gcd1 = GCD(s,2*a);
long long x = -b/gcd;
long long y = 2*a/gcd;
long long z = abs(s/gcd1);
long long w = 2*a/gcd1;
if((x>0&&y>0) || (x<0&&y<0)){
if(abs(y)==1 && abs(w)==1){
if(z==1){
printf("%lld+sqrt(%lld)",abs(x),ss);
printf("\n");
}
else{
printf("%lld+%lld*sqrt(%lld)",abs(x),z,ss);
printf("\n");
}
}
else if(abs(y)==1 && abs(w)!=1){
if(z==1){
printf("%lld+sqrt(%lld)/%lld",abs(x),ss,abs(w));
printf("\n");
}
else{
printf("%lld+%lld*sqrt(%lld)/%lld",abs(x),z,ss,abs(w));
printf("\n");
}
}
else if(abs(y)!=1 && abs(w)==1){
if(z==1){
printf("%lld/%lld+sqrt(%lld)",abs(x),abs(y),ss);
printf("\n");
}
else{
printf("%lld/%lld+%lld*sqrt(%lld)",abs(x),abs(y),z,ss);
printf("\n");
}
}
else{
if(z==1){
printf("%lld/%lld+sqrt(%lld)/%lld",abs(x),abs(y),ss,abs(w));
printf("\n");
}
else{
printf("%lld/%lld+%lld*sqrt(%lld)/%lld",abs(x),abs(y),z,ss,abs(w));
printf("\n");
}
}
}
else{
if(abs(y)==1 && abs(w)==1){
if(b==0 && z==1){
printf("sqrt(%lld)",ss);
printf("\n");
}
else if(b==0){
printf("%lld*sqrt(%lld)",z,ss);
printf("\n");
}
else if(z==1){
printf("-%lld+sqrt(%lld)",abs(x),ss);
printf("\n");
}
else{
printf("-%lld+%lld*sqrt(%lld)",abs(x),z,ss);
printf("\n");
}
}
else if(abs(y)==1 && abs(w)!=1){
if(b==0 && z==1){
printf("sqrt(%lld)/%lld",ss,abs(w));
printf("\n");
}
else if(b==0){
printf("%lld*sqrt(%lld)/%lld",z,ss,abs(w));
printf("\n");
}
else if(z==1){
printf("-%lld+sqrt(%lld)/%lld",abs(x),ss,abs(w));
printf("\n");
}
else{
printf("-%lld+%lld*sqrt(%lld)/%lld",abs(x),z,ss,abs(w));
printf("\n");
}
}
else if(abs(y)!=1 && abs(w)==1){
if(b==0 && z==1){
printf("sqrt(%lld)",ss);
printf("\n");
}
else if(b==0){
printf("%lld*sqrt(%lld)",z,ss);
printf("\n");
}
else if(z==1){
printf("-%lld/%lld+sqrt(%lld)",abs(x),abs(y),ss);
printf("\n");
}
else{
printf("-%lld/%lld+%lld*sqrt(%lld)",abs(x),abs(y),z,ss);
printf("\n");
}
}
else{
if(b==0 && z==1){
printf("sqrt(%lld)/%lld",ss,abs(w));
printf("\n");
}
else if(b==0){
printf("%lld*sqrt(%lld)/%lld",z,ss,abs(w));
printf("\n");
}
else if(z==1){
printf("-%lld/%lld+sqrt(%lld)/%lld",abs(x),abs(y),ss,abs(w));
printf("\n");
}
else{
printf("-%lld/%lld+%lld*sqrt(%lld)/%lld",abs(x),abs(y),z,ss,abs(w));
printf("\n");
}
}
}
}
//有理数
else if((s>0&&ss==0)){
//cout<<"three"<<'\t'<<value<<'\t'<<s<<'\n';
long long x = 0;
if(a>0)
x = -b+s;
else
x = -b-s;
long long gcd = GCD(x,2*a);
long long y = x/gcd;
long long z = 2*a/gcd;
if(abs(z)==1){
printf("%lld",y);
printf("\n");
}
else
if((y>0&&z>0) || (y<0&&z<0)){
printf("%lld/%lld",abs(y),abs(z));
printf("\n");
}
else{
printf("-%lld/%lld",abs(y),abs(z));
printf("\n");
}
}
}
}
}