#include <iostream>
using namespace std;
int main()
{
long long int t,a,b,c,flagb,flagc;
cin>>t;
string s;
while(t--)
{
a=b=c=flagb=flagc=0;
cin>>s;
if(s[0]=='x')
{
a=1;
flagb=3;
if(s[flagb]=='=')
{
b=c=0;
goto solve;
}
}
else
{
a=(long long int)(s[0]-'0');
flagb=5;
int t1=1;
while(s[t1]!='*')
{
flagb++;
a=a*10+(long long int)(s[t1]-'0');
t1++;
}
if(s[flagb]=='=')
{
b=c=0;
goto solve;
}
}
if(s[flagb]=='+')
{
if(s[flagb+1]=='x')
{
b=1;
flagc=flagb+2;
if(s[flagc]=='=')
{
c=0;
goto solve;
}
}
else
{
b=(long long int)(s[flagb+1]-'0');
flagc=flagb+4;
int t1=flagb+2;
while(s[t1]!='*')
{
if(s[t1]=='=')
{
c=b;
b=0;
goto solve;
}
flagc++;
b=b*10+(long long int)(s[t1]-'0');
t1++;
}
if(s[flagc]=='=')
{
c=0;
goto solve;
}
}
}
if(s[flagb]=='-')
{
if(s[flagb+1]=='x')
{
b=-1;
flagc=flagb+2;
if(s[flagc]=='=')
{
c=0;
goto solve;
}
}
else
{
b=(long long int)(s[flagb+1]-'0');
flagc=flagb+4;
int t1=flagb+2;
while(s[t1]!='*')
{
if(s[t1]=='=')
{
c=-b;
b=0;
goto solve;
}
flagc++;
b=b*10+(long long int)(s[t1]-'0');
t1++;
}
b=-b;
if(s[flagc]=='=')
{
c=0;
goto solve;
}
}
}
if(s[flagc]=='+')
{
c=(long long int)(s[flagc+1]-'0');
int t1=flagc+2;
while(s[t1]!='=')
{
c=c*10+(long long int)(s[t1]-'0');
t1++;
}
}
else
{
c=(long long int)(s[flagc+1]-'0');
int t1=flagc+2;
while(s[t1]!='=')
{
c=c*10+(long long int)(s[t1]-'0');
t1++;
}
c=-c;
}
solve:
//cout<<a<<" "<<b<<" "<<c<<endl;
if(b==0&&c==0)
cout<<"Equal roots."<<endl;
else if(b==0&&c>0)
cout<<"Imaginary roots."<<endl;
else
{
b*=b;
b-=4*a*c;
if(b<0)
cout<<"Imaginary roots."<<endl;
if(b>0)
cout<<"Distinct real roots." <<endl;
if(b==0)
cout<<"Equal roots."<<endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpCnsKICAgIGxvbmcgbG9uZyBpbnQgdCxhLGIsYyxmbGFnYixmbGFnYzsKICAgIGNpbj4+dDsKICAgIHN0cmluZyBzOwogICAgd2hpbGUodC0tKQogICAgewoJICAgIGE9Yj1jPWZsYWdiPWZsYWdjPTA7CiAgICAgICAgY2luPj5zOwogICAgICAgIGlmKHNbMF09PSd4JykKICAgICAgICB7CiAgICAgICAgICAgIGE9MTsKICAgICAgICAgICAgZmxhZ2I9MzsKICAgICAgICAgICAgaWYoc1tmbGFnYl09PSc9JykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYj1jPTA7CiAgICAgICAgICAgICAgICBnb3RvIHNvbHZlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGE9KGxvbmcgbG9uZyBpbnQpKHNbMF0tJzAnKTsKICAgICAgICAgICAgZmxhZ2I9NTsKICAgICAgICAgICAgaW50IHQxPTE7CiAgICAgICAgICAgIHdoaWxlKHNbdDFdIT0nKicpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZsYWdiKys7CiAgICAgICAgICAgICAgICBhPWEqMTArKGxvbmcgbG9uZyBpbnQpKHNbdDFdLScwJyk7CiAgICAgICAgICAgICAgICB0MSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKHNbZmxhZ2JdPT0nPScpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGI9Yz0wOwogICAgICAgICAgICAgICAgZ290byBzb2x2ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZihzW2ZsYWdiXT09JysnKQogICAgICAgIHsKICAgICAgICAgICAgaWYoc1tmbGFnYisxXT09J3gnKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBiPTE7CiAgICAgICAgICAgICAgICBmbGFnYz1mbGFnYisyOwogICAgICAgICAgICAgICAgaWYoc1tmbGFnY109PSc9JykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjPTA7CiAgICAgICAgICAgICAgICAgICAgZ290byBzb2x2ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGI9KGxvbmcgbG9uZyBpbnQpKHNbZmxhZ2IrMV0tJzAnKTsKICAgICAgICAgICAgICAgIGZsYWdjPWZsYWdiKzQ7CiAgICAgICAgICAgICAgICBpbnQgdDE9ZmxhZ2IrMjsKICAgICAgICAgICAgICAgIHdoaWxlKHNbdDFdIT0nKicpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYoc1t0MV09PSc9JykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGM9YjsKICAgICAgICAgICAgICAgICAgICAgICAgYj0wOwogICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNvbHZlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmbGFnYysrOwogICAgICAgICAgICAgICAgICAgIGI9YioxMCsobG9uZyBsb25nIGludCkoc1t0MV0tJzAnKTsKICAgICAgICAgICAgICAgICAgICB0MSsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoc1tmbGFnY109PSc9JykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjPTA7CiAgICAgICAgICAgICAgICAgICAgZ290byBzb2x2ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZihzW2ZsYWdiXT09Jy0nKQogICAgICAgIHsKICAgICAgICAgICAgaWYoc1tmbGFnYisxXT09J3gnKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBiPS0xOwogICAgICAgICAgICAgICAgZmxhZ2M9ZmxhZ2IrMjsKICAgICAgICAgICAgICAgIGlmKHNbZmxhZ2NdPT0nPScpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYz0wOwogICAgICAgICAgICAgICAgICAgIGdvdG8gc29sdmU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBiPShsb25nIGxvbmcgaW50KShzW2ZsYWdiKzFdLScwJyk7CiAgICAgICAgICAgICAgICBmbGFnYz1mbGFnYis0OwogICAgICAgICAgICAgICAgaW50IHQxPWZsYWdiKzI7CiAgICAgICAgICAgICAgICB3aGlsZShzW3QxXSE9JyonKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmKHNbdDFdPT0nPScpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjPS1iOwogICAgICAgICAgICAgICAgICAgICAgICBiPTA7CiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gc29sdmU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZsYWdjKys7CiAgICAgICAgICAgICAgICAgICAgYj1iKjEwKyhsb25nIGxvbmcgaW50KShzW3QxXS0nMCcpOwogICAgICAgICAgICAgICAgICAgIHQxKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBiPS1iOwogICAgICAgICAgICAgICAgaWYoc1tmbGFnY109PSc9JykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjPTA7CiAgICAgICAgICAgICAgICAgICAgZ290byBzb2x2ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZihzW2ZsYWdjXT09JysnKQogICAgICAgIHsKICAgICAgICAgICAgYz0obG9uZyBsb25nIGludCkoc1tmbGFnYysxXS0nMCcpOwogICAgICAgICAgICBpbnQgdDE9ZmxhZ2MrMjsKICAgICAgICAgICAgd2hpbGUoc1t0MV0hPSc9JykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYz1jKjEwKyhsb25nIGxvbmcgaW50KShzW3QxXS0nMCcpOwogICAgICAgICAgICAgICAgdDErKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBjPShsb25nIGxvbmcgaW50KShzW2ZsYWdjKzFdLScwJyk7CiAgICAgICAgICAgIGludCB0MT1mbGFnYysyOwogICAgICAgICAgICB3aGlsZShzW3QxXSE9Jz0nKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjPWMqMTArKGxvbmcgbG9uZyBpbnQpKHNbdDFdLScwJyk7CiAgICAgICAgICAgICAgICB0MSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGM9LWM7CiAgICAgICAgfQogICAgICAgIHNvbHZlOgogICAgICAgIC8vY291dDw8YTw8IiAiPDxiPDwiICI8PGM8PGVuZGw7CiAgICAgICAgaWYoYj09MCYmYz09MCkKICAgICAgICAgICAgY291dDw8IkVxdWFsIHJvb3RzLiI8PGVuZGw7CiAgICAgICAgZWxzZSBpZihiPT0wJiZjPjApCiAgICAgICAgICAgIGNvdXQ8PCJJbWFnaW5hcnkgcm9vdHMuIjw8ZW5kbDsKICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBiKj1iOwogICAgICAgICAgICBiLT00KmEqYzsKICAgICAgICAgICAgaWYoYjwwKQogICAgICAgICAgICAgICAgY291dDw8IkltYWdpbmFyeSByb290cy4iPDxlbmRsOwogICAgICAgICAgICBpZihiPjApCiAgICAgICAgICAgICAgICBjb3V0PDwiRGlzdGluY3QgcmVhbCByb290cy4iIDw8ZW5kbDsKICAgICAgICAgICAgaWYoYj09MCkKICAgICAgICAgICAgICAgIGNvdXQ8PCJFcXVhbCByb290cy4iPDxlbmRsOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9