#include<bits/stdc++.h>
using namespace std;
int sum=0;
int fuwuqi[1010][3];
int a,b,c,d,e;
char wz[5]={'.','.','.','.',':'};
bool shuru()
{
string p;
cin>>p;
int fuhao=0;
int n=p.length();
if(p[n-1]=='.'||p[n-1]==':')
return 0;
for(int i=0;i<n;i++)
if(p[i]=='.'||p[i]==':')
{
fuhao++;
if(fuhao>4)
return 0;
if(wz[fuhao]!=p[i])
return 0;
if(i<n-1&&p[i]==p[i+1])
return 0;
if(p[i+1]=='0'&&p[i+2]=='0')
return 0;
}
if(fuhao<4)
return 0;
int gyc[30]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int j=1;
for(int i=0;i<n;i++)
{
if(p[i]=='.'||p[i]==':')
i++,j++;
if(i==n-1&&(p[i]=='.'||p[i]==':'))
return 0;
gyc[j]*=10;
gyc[j]+=p[i]-'0';
}
a=gyc[1];
b=gyc[2];
c=gyc[3];
d=gyc[4];
e=gyc[5];
return 1;
}
bool guifan(int a,int b,int c,int d,int e)
{
if(a<=255&&b<=255&&c<=255&&d<=255&&e<=65535&&a>=0&&b>=0&&c>=0&&d>=0&&e>=0)
return 1;
return 0;
}
int sousuo(int n)
{
for(int i=1;i<=sum;i++)
if(fuwuqi[i][1]==n)
return i;
return 0;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
string named;
cin>>named;
if(shuru()==0)
cout<<"ERR"<<endl;
else
{
int panduan=a*7+b*9+c*10+d*5+e*8+a*b+c*d+e*e+a+c+b*b+a*e+c*b+d;
if(named=="Server")
{
if(!guifan(a,b,c,d,e))
cout<<"ERR"<<endl;
else if(!sousuo(panduan)>0)
{
sum++;
fuwuqi[sum][1]=panduan;
fuwuqi[sum][2]=i;
cout<<"OK"<<endl;
}
else
{
cout<<"FAIL"<<endl;
}
}
else
{
int jg=sousuo(panduan);
if(!guifan(a,b,c,d,e))
cout<<"ERR"<<endl;
else if(jg==0)
cout<<"FAIL"<<endl;
else
{
cout<<fuwuqi[jg][2]<<endl;
}
}
}
}
return 0;
}