#include<bits/stdc++.h>
using namespace std;
int n;
struct node
{
bool c;
string s;
bool f;
}a[1021];
int ansa[10021],ansb[10021],ansc[10021],ansd[10021],anse[10021];
int fi(string t,char pp,int u)
{
for(int i=u;i<t.size();++i)
if(t[i]==pp) return i;
return -1;
}
void work(string s,int i)
{
if(s=="Client") a[i].c=true;
cin>>a[i].s;
int aa,ab,ac,ad;
aa=fi(a[i].s,'.',0);
if(aa==-1||aa==0||aa>3)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
ab=fi(a[i].s,'.',aa+1);
if(ab==-1||ab<aa+2)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
if(ab-aa>4)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
ac=fi(a[i].s,'.',ab+1);
if(ac==-1||ac<ab+2)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
if(ac-ab>4)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
ad=fi(a[i].s,':',ac+1);
if(ad==-1||ad<ac+2)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
if(a[i].s.size()-1-ad>5||ad==a[i].s.size()-1)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
if(a[i].s[0]=='0'&&aa!=1||a[i].s[aa+1]=='0'&&ab!=aa+2||a[i].s[ab+1]=='0'&&ac!=ab+2||a[i].s[ac+1]=='0'&&ad!=ac+2||a[i].s[ad+1]=='0'&&a[i].s.size()-1!=ad+1)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
int ans;
ans=0;
for(int j=0;j<=aa-1;++j)
if(a[i].s[j]<'0'||a[i].s[j]>'9')
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
else ans=ans*10+a[i].s[j]-48;
if(ans>255||ans<0)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
ansa[i]=ans;
ans=0;
for(int j=aa+1;j<=ab-1;++j)
if(a[i].s[j]<'0'||a[i].s[j]>'9')
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
else ans=ans*10+a[i].s[j]-48;
if(ans>255||ans<0)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
ansb[i]=ans;
ans=0;
for(int j=ab+1;j<=ac-1;++j)
if(a[i].s[j]<'0'||a[i].s[j]>'9')
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
else ans=ans*10+a[i].s[j]-48;
if(ans>255||ans<0)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
ansc[i]=ans;
ans=0;
for(int j=ac+1;j<=ad-1;++j)
if(a[i].s[j]<'0'||a[i].s[j]>'9')
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
else ans=ans*10+a[i].s[j]-48;
if(ans>255||ans<0)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
ansd[i]=ans;
ans=0;
for(int j=ad+1;j<a[i].s.size();++j)
if(a[i].s[j]<'0'||a[i].s[j]>'9')
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
else ans=ans*10+a[i].s[j]-48;
if(ans>65535||ans<0)
{
cout<<"ERR"<<endl;
a[i].f=true;
return;
}
anse[i]=ans;
if(a[i].c==false)
{
for(int j=1;j<i;++j)
if(a[j].f==false&&a[j].c==false&&ansa[i]==ansa[j]&&ansb[i]==ansb[j]&&ansc[i]==ansc[j]&&ansd[i]==ansd[j]&&anse[i]==anse[j])
{
cout<<"FAIL"<<endl;
return;
}
cout<<"OK"<<endl;
}
else
{
for(int j=1;j<i;++j)
if(a[j].f==false&&a[j].c==false&&ansa[i]==ansa[j]&&ansb[i]==ansb[j]&&ansc[i]==ansc[j]&&ansd[i]==ansd[j]&&anse[i]==anse[j])
{
cout<<j<<endl;
return;
}
cout<<"FAIL"<<endl;
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
{
string s;
cin>>s;
work(s,i);
}
return 0;
}