#include <bits/stdc++.h>
using namespace std;
map<string,int>mp;
int p(string s){
int cnt=0;
for(int i=0;i<s.length();i++){
cnt=cnt*10+(s[i]-'0');
if (cnt>65535) return 65537;
}
return cnt;
}
bool pd(string x){
string s;
int i=0;
for(;i<x.length();i++){
if ('0'<=x[i]&&x[i]<='9') s+=x[i];
else break;
}
if (s.length()==0) return false;
if (i==x.length()||x[i]!='.') return false;
for(int i=0;i<s.length();i++){
if ('1'<=s[i]&&s[i]<='9') break;
if (s.length()!=1) return false;
}
if (p(s)>255) return false;
i++;
string s1;
for(;i<x.length();i++){
if ('0'<=x[i]&&x[i]<='9') s1+=x[i];
else break;
}
if (s1.length()==0) return false;
if (i==x.length()||x[i]!='.') return false;
for(int i=0;i<s1.length();i++){
if ('1'<=s1[i]&&s1[i]<='9') break;
if (s1.length()!=1) return false;
}
if (p(s1)>255) return false;
i++;
string s2;
for(;i<x.length();i++){
if ('0'<=x[i]&&x[i]<='9') s2+=x[i];
else break;
}
if (s2.length()==0) return false;
if (i==x.length()||x[i]!='.') return false;
for(int i=0;i<s2.length();i++){
if ('1'<=s2[i]&&s2[i]<='9') break;
if (s2.length()!=1) return false;
}
if (p(s2)>255) return false;
i++;
string s3;
for(;i<x.length();i++){
if ('0'<=x[i]&&x[i]<='9') s3+=x[i];
else break;
}
if (i==x.length()||x[i]!=':') return false;
for(int i=0;i<s3.length();i++){
if ('1'<=s3[i]&&s3[i]<='9') break;
if (s3.length()!=1) return false;
}
if (p(s3)>255) return false;
i++;
string s4;
for(;i<x.length();i++){
if ('0'<=x[i]&&x[i]<='9') s4+=x[i];
else break;
}
if (i<x.length()) return false;
for(int i=0;i<s4.length();i++){
if ('1'<=s4[i]&&s4[i]<='9') break;
if (s4.length()!=1) return false;
}
if (p(s4)>65535) return false;
return true;
}
int main(){
int n;
cin>>n;
mp.clear();
for(int i=1;i<=n;i++){
string s,x;
cin>>s>>x;
if(s=="Server"){
if (mp[x]>0) printf("FAIL\n");
else{
if (pd(x)) {
mp[x]=i;
printf("OK\n");
}
else printf("ERR\n");
}
}
else{
if(mp[x]>0) printf("%d\n",mp[x]);
else if (pd(x)) printf("FAIL\n");
else printf("ERR\n");
}
}
return 0;
}