double D(m,k)double*m;
{
double t=0;
for(int s=1,b=1,x=0;x<6;x++,b+=b)k&b||(t+=s*m[x]*(k+b>62?1:D(m+6,k+b)),s=-s);
return t;
}
i,u,h;
double m[36],*t=m+6,w[6],s[3],b,d;
main(){
for(;i++<5;*t++=d*d,*t++=d*b,*t++=b*b,*t++=d,*t++=b,*t++=1)
for(u=4;u;u/=2)
for(m[0]=u&1,m[1]=u&2,m[2]=u&4,
d=D(m,0),h=0;
d&&h<3;
h++)
{
for(i=0;i<6;i++)w[i]=m[i*6+h],m[i*6+h]=i?0:u;
s[h]=D(m,0)/d;
for(;i--;)m[i*6+h]=w[i];
}
b=s[1];d=b*b-4*s[0]*s[2];
puts(d
?d
<0?!b
&(s
[2]==s
[0])?"Circle":"Ellipse":"Hyperbola":"Parabola"); }
ZG91YmxlIEQobSxrKWRvdWJsZSptOwp7Cglkb3VibGUgdD0wOwoJZm9yKGludCBzPTEsYj0xLHg9MDt4PDY7eCsrLGIrPWIpayZifHwodCs9cyptW3hdKihrK2I+NjI/MTpEKG0rNixrK2IpKSxzPS1zKTsKCXJldHVybiB0Owp9CmksdSxoOwpkb3VibGUgbVszNl0sKnQ9bSs2LHdbNl0sc1szXSxiLGQ7Cm1haW4oKXsKCWZvcig7aSsrPDU7KnQrKz1kKmQsKnQrKz1kKmIsKnQrKz1iKmIsKnQrKz1kLCp0Kys9YiwqdCsrPTEpCgkJc2NhbmYoIiVsZiVsZiIsJmQsJmIpOwoJZm9yKHU9NDt1O3UvPTIpCgkJZm9yKG1bMF09dSYxLG1bMV09dSYyLG1bMl09dSY0LAoJCQlkPUQobSwwKSxoPTA7CgkJCWQmJmg8MzsKCQkJaCsrKQoJCXsKCQkJZm9yKGk9MDtpPDY7aSsrKXdbaV09bVtpKjYraF0sbVtpKjYraF09aT8wOnU7CgkJCXNbaF09RChtLDApL2Q7CgkJCWZvcig7aS0tOyltW2kqNitoXT13W2ldOwoJCX0KCWI9c1sxXTtkPWIqYi00KnNbMF0qc1syXTsKCXB1dHMoZD9kPDA/IWImKHNbMl09PXNbMF0pPyJDaXJjbGUiOiJFbGxpcHNlIjoiSHlwZXJib2xhIjoiUGFyYWJvbGEiKTsKfQ==