#include<bits/stdc++.h>
using namespace std;
int n,a,b,c,d,e,k=0,kk=0;
struct data{
int a,b,c,d,e,kg;
}dat[1010];
bool check(string s){
int l=s.size(),f=1,sm=0,sd=0;
for(int i=0;i<l;++i){
if(s[i]=='.')++sd;
if(s[i]==':')++sm;
if(s[i]==':'&&sd!=3)return 0;
}
if(sd!=3||sm!=1)return 0;
for(int i=0;i<l;++i){
int x=0;
if(s[i]>='0'&&s[i]<='9'){
while(s[i]>='0'&&s[i]<='9'){
x=x*10+s[i]-'0';
++i;
}
if(f==1)a=x,++f;
else if(f==2)b=x,++f;
else if(f==3)c=x,++f;
else if(f==4)d=x,++f;
else if(f==5)e=x;
}
}
if(a>255||b>255||c>255||d>255||a<0||b<0||c<0||d<0||e<0||e>65535)return 0;
else return 1;
}
void Server(){
++kk;
for(int i=1;i<=k;++i){
if(a==dat[i].a&&b==dat[i].b&&c==dat[i].c&&d==dat[i].d&&e==dat[i].e){
cout<<"FAIL\n";
return;
}
}
cout<<"OK\n";
++k;dat[k].a=a;dat[k].b=b;dat[k].c=c;dat[k].d=d;dat[k].e=e;dat[k].kg=kk;
return;
}
void Client(){
++kk;
for(int i=1;i<=k;++i){
if(a==dat[i].a&&b==dat[i].b&&dat[i].c==c&&d==dat[i].d&&e==dat[i].e){
cout<<dat[i].kg<<endl;
return;
}
}
cout<<"FAIL\n";
return;
}
int main(){
cin>>n;
for(int ni=1;ni<=n;++ni){
string cpt,ip;
cin>>cpt>>ip;
if(check(ip)==0){cout<<"ERR\n";continue;}
if(cpt=="Server")Server();
else Client();
}
return 0;
}