#include<bits/stdc++.h>
using namespace std;
int n;
string a,b;
set <string> s1;
map<string,int> mp;
int kkk(int l,int num,char c){
if(num<4&&c!='.') return 0;
if(num<5&&(l<0||l>255)) return 0;
if(num==4&&c!=':') return 0;
if(num>4)return 0;
return 1;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>b;
int l=b.size(),ll=0,num=1,lll=0,p=1;
for(int j=0;j<l;j++){
if(b[j]=='.'||b[j]==':'){
if(ll==0) ll++;
if(ll<pow(10,lll-1)) p=0;
else p=kkk(ll,num++,b[j]);
ll=lll=0;
if(p==0) break;
continue;
}
ll=ll*10+b[j]-'0';
if(ll>=100000){
p=0;break;
}
lll++;
}
if(b[l-1]<'0'||b[l-1]>'9') p=0;
else if(ll==0) ll++;
if(b[0]<'0'||b[0]>'9') p=0;
else if(ll<pow(10,lll-1)) p=0;
else if(ll<0||ll>65535) p=0;
if(p==0||num<5) {
cout<<"ERR\n";
continue;
}
if(a=="Server") {
if(s1.count(b)) cout<<"FAIL\n";
else{
mp[b]=i;
s1.insert(b);
cout<<"OK\n";
}
}
else {
if(!s1.count(b)) cout<<"FAIL\n";
else cout<<mp[b]<<'\n';
}
}
return 0;
}