#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll T,A,B,C,M;
void output(int molecule,int denominator){
//The denominator cannot be negative
ll Gcd=__gcd(molecule,denominator);
molecule/=Gcd; denominator/=Gcd;
if(denominator<0){
denominator=-denominator;
molecule=-molecule;
}
if(denominator==1){
cout<<molecule;
return ;//Divisible
}
cout<<molecule<<'/'<<denominator;
return ;
}
ll delta(ll N,ll M,ll K){
return M*M-4*N*K;
}
void imitate(ll a,ll b,ll c){
ll D=delta(a,b,c);
//situation 1
if(D<0){
cout<<"NO"<<endl;
return ;
}
//situation 2
if(D==0){
output(-b,2*a);
cout<<endl;
return ;
}
//situation 3
//D>0 and D is a perfectly squared number
if(sqrt(D)*sqrt(D)==D) {
ll p;
if(a<0) p=-b-sqrt(D);
else p=-b+sqrt(D);
output(p,2*a);
cout<<endl;
return ;
}
//situation 4
//D>0 and D isnot a perfectly squared number
if(b!=0){
output(-b,2*a);
if(a<0) cout<<'-';
else cout<<'+';
}
ll accumulate=1;
for(int i=2;i*i<=D;i++){
if(D%(i*i)==0){
accumulate*=i;
D/=(i*i);
}
}
// bool enti=true;
// if(accumulate%(2*a)==0){
// accumulate/=(2*a);
// enti=false;
// }
ll temp=2*a;
ll gCd=__gcd(accumulate,temp);
accumulate/=gCd; temp/=gCd;
if(accumulate!=1) cout<<accumulate<<'*';
cout<<"sqrt("<<D<<")";
// if(enti==true)cout<<'/'<<2*a;
if(temp!=1) cout<<'/'<<temp;
cout<<'\n';
return ;
}
int main(void){
cin>>T>>M;
while(T--){
cin>>A>>B>>C;
imitate(A,B,C);
}
return 0;
}