#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e;
int n,l;
char aa,bb,cc,dd;
string s;
struct correct{
int u,v,w,x,y,num;
}ans[10005];
bool legal(){
if(a<0||a>255||b<0||b>255||c<0||c>255||d<0||d>255||e<0||e>65535||aa!='.'||bb!='.'||cc!='.'||dd!=':'){
return 0;
}else{
return 1;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s;
cin>>a>>aa>>b>>bb>>c>>cc>>d>>dd>>e;
if(!legal()){
cout<<"ERR\n";
}else{
if(s=="Server"){
bool flg=0;
for(int j=1;j<=l;j++){
if(!(a!=ans[j].u||b!=ans[j].v||c!=ans[j].w||d!=ans[j].x||e!=ans[j].y)){
cout<<"FAIL\n";
flg=1;
break;
}
}
if(!flg){
cout<<"OK\n";
l++;
ans[l].u=a;
ans[l].v=b;
ans[l].w=c;
ans[l].x=d;
ans[l].y=e;
ans[l].num=i;
}
}else{
bool flg=0;
for(int j=1;j<=l;j++){
if(a==ans[j].u&&b==ans[j].v&&c==ans[j].w&&d==ans[j].x&&e==ans[j].y){
cout<<ans[j].num<<endl;
flg=1;
break;
}
}
if(!flg){
cout<<"FAIL\n";
}
}
}
}
return 0;
}
求条plz T^T