#include<bits/stdc++.h>
using namespace std;
int t,m,a,b,c,deta,tmp,q,p,ans,f;
int get(int x){
tmp=x,ans=1;
for(int i=2;i<=sqrt(tmp);i++){
if(x%i==0){
int cnt=0;
while(x%i==0){
x/=i;
cnt++;
}
ans*=int(pow(i,cnt/2));
}
}
return ans;
}
int main(){
cin>>t>>m;
while(t--){
cin>>a>>b>>c;
deta=b*b-4*a*c;
if(deta<0){
cout<<"NO"<<endl;
}else{
if(deta==0){
if(b==0){
cout<<0<<endl;
continue;
}
q=b,p=2*a,f=1;
if(q<0&&p<0){
q=-q;
p=-p;
}else{
if(q<0&&p>0){
q=-q;
f=0;
}else{
if(q>0&&p<0){
p=-p;
f=0;
}
}
}
tmp=__gcd(q,p);
q/=tmp;
p/=tmp;
if(f) cout<<"-";
if(p==1) cout<<q<<endl;
else cout<<q<<"/"<<p<<endl;
}else{
if(a>0){
int d=get(deta);
if(d*d==deta){
q=d-b;
p=2*a;
if(q<0){
cout<<"-";
q=-q;
}
tmp=__gcd(q,p);
q/=tmp;
p/=tmp;
if(p==1){
cout<<q<<endl;
}else{
if(q==0){
cout<<0<<endl;
}else{
printf("%d/%d\n",q,p);
}
}
}else{
deta/=d*d;
q=b,p=2*a,f=1;
if(q<0&&p<0){
q=-q;
p=-p;
}else{
if(q<0&&p>0){
q=-q;
f=0;
}else{
if(q>0&&p<0){
p=-p;
f=0;
}
}
}
tmp=__gcd(q,p);
q/=tmp;
p/=tmp;
if(p==1){
if(q!=0){
if(f) cout<<"-";
cout<<q<<"+";
}
}else{
if(q!=0){
if(f) cout<<"-";
printf("%d/%d+",q,p);
}
}
q=d,p=2*a;
tmp=__gcd(q,p);
q/=tmp;
p/=tmp;
if(p==1){
if(q!=1) printf("%d*sqrt(%d)\n",q,deta);
else printf("sqrt(%d)\n",deta);
}else{
if(q!=1) printf("%d*sqrt(%d)/%d\n",q,deta,p);
else printf("sqrt(%d)/%d\n",deta,p);
}
}
}else{
a=-a;
int d=get(deta);
deta/=d*d;
int q=b,p=2*a;
if(q==0){
q=d,p=2*a;
int tmp=__gcd(q,p);
q/=tmp;
p/=tmp;
if(p==1){
if(q!=1) printf("%d*sqrt(%d)\n",q,deta);
else printf("sqrt(%d)\n",deta);
}else{
if(q!=1) printf("%d*sqrt(%d)/%d\n",q,deta,p);
else printf("sqrt(%d)/%d\n",deta,p);
}
}else{
if(q<0){
q=-q;
cout<<"-";
}
int tmp=__gcd(q,p);
q/=tmp;
p/=tmp;
if(p==1){
cout<<q<<"+";
}else{
printf("%d/%d+",q,p);
}
q=d,p=2*a;
tmp=__gcd(q,p);
q/=tmp;
p/=tmp;
if(p==1){
if(q!=1) printf("%d*sqrt(%d)\n",q,deta);
else printf("sqrt(%d)\n",deta);
}else{
if(q!=1) printf("%d*sqrt(%d)/%d\n",q,deta,p);
else printf("sqrt(%d)/%d\n",deta,p);
}
}
}
}
}
}
return 0;
}
A了第一个点 10pts