#include <bits/stdc++.h>
using namespace std;
const int N=1010;
#define ll long long
#define str string
ll n,fwq=0;
str op,ad,aa;
struct server{
str ip;
int num;
}a[N];
bool cheak(string s){
ll d=0,m=0,dwz,mwz;
for(int i=0;i<s.size();i++){
if(s[i]=='.') d++,dwz=i;
else if(s[i]==':') m++,mwz=i;
}
if(d!=3||m!=1||mwz<=dwz) return 0;
ll sz=0,ws=0,gs=0,dyw=0;
for(int i=0;i<=s.size();i++){
if(s[i]=='.'||s[i]==':'||i==s.size()){
gs++;
sz/=10;
if(gs<=4){
if(sz>255) return 0;
if(s[dyw]=='0'&&ws>1)return 0;
}
else{
if(sz>65535) return 0;
if(s[dyw]=='0'&&ws>1)return 0;
}
dyw=i+1;
sz=0,ws=0;
}
else{
sz+=s[i]-'0';
sz*=10;
ws++;
}
}
return 1;
}
int main() {
cin>>n;
for(int i=1;i<=n;i++){
cin>>op>>ad;
if(op=="Server"){
if(!cheak(ad)){
cout<<"ERR\n";
continue;
}
else{
bool b=1;
for(int j=1;j<=fwq;j++){
if(a[j].ip==ad) b=0;
}
fwq++;
if(b){
cout<<"OK\n";
a[fwq].ip=ad,a[fwq].num=i;
}
else {
cout<<"FAIL\n";
}
}
}
else{
if(!cheak(ad)){
cout<<"ERR\n";
continue;
}
else{
bool b=0;
for(int j=1;j<=fwq;j++) if(a[j].ip==ad)b=1,cout<<a[j].num<<"\n";
if(!b) cout<<"FAIL\n";
}
}
}
return 0;
}