#include<iostream>
#include<cstdio>
using namespace std;
struct computer{
string typ,ip;
}cpt[1005];
int n;
bool flag;
bool legal(computer x){
int cnt=1,sum=0;
if(!(isdigit(x.ip[0])&&(isdigit(x.ip[x.ip.length()-1])))){return false;}
for(int i=0;i<x.ip.length();i++){
if(x.ip[i]=='0'&&((x.ip[i-1]=='.'||x.ip[i-1]==':')&&isdigit(x.ip[i+1]))){return false;}
if(i!=0&&(!isdigit(x.ip[i]))&&(!isdigit(x.ip[i-1]))){return false;}
if(x.ip[i]=='.'&&cnt<=3||x.ip[i]==':'&&cnt==4){
cnt++;
if(sum>=256){return false;}
sum=0;
}
else if(isdigit(x.ip[i])){
sum=sum*10+x.ip[i]-'0';
if(sum>99999){return false;}
}
else{return false;}
}
if(sum<=65535&&cnt==5){return true;}
else{return false;}
}
int main(){
//freopen("network.in","r",stdin);
//freopen("network.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++){
cin>>cpt[i].typ>>cpt[i].ip;
//cout<<legal(cpt[i])<<endl;
if(!legal(cpt[i])){cout<<"ERR"<<endl;continue;}
if(cpt[i].typ=="Server"){
flag=true;
for(int j=1;j<i;j++){
if(cpt[j].typ=="Server"&&cpt[i].ip==cpt[j].ip){
cout<<"FAIL"<<endl;
flag=false;
break;
}
}
if(flag){
cout<<"OK"<<endl;
}
}
if(cpt[i].typ=="Client"){
flag=false;
for(int j=1;j<i;j++){
if(cpt[j].typ=="Server"&&cpt[i].ip==cpt[j].ip){
cout<<j<<endl;
flag=true;
break;
}
}
if(!flag){
cout<<"FAIL"<<endl;
}
}
}
return 0;
}