#include<bits/stdc++.h>
using namespace std;
struct Server{
int a,b,c,d;
int e;
int p;
Server(){}
Server(int _a,int _b,int _c,int _d,int _e,int _p){
a=_a;
b=_b;
c=_c;
d=_d;
e=_e;
p=_p;}
bool operator==(const Server& t) const{
if(a==t.a&&b==t.b&&c==t.c&&d==t.d&&e==t.e) return 1;
return 0;}
};
int a,b,c,d,e,n;
int len=0;
Server sv[1010];
bool fun(string s){
a=b=c=d=e=-1;
sscanf(s.c_str(),"%d.%d.%d.%d:%d",&a,&b,&c,&d,&e);
if((a<=0||a>=255)||(b<=0||b>=255)||(c<=0||c>=255)||(d<=0||d>=255)||(e<=0||e>=65535)) return false;
char buf[30];
sprintf(buf,"%d.%d.%d.%d:%d",a,b,c,d,e);
string ns(buf);
if(ns!=s) return false;
return true;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
string op,ad;
cin>>op>>ad;
if(fun(ad)==false){
cout<<"ERR"<<endl;
continue;}
Server t(a,b,c,d,e,i);
if(op=="Server"){
bool flag=false;
for(int i=1;i<=len;i++){
if(sv[i]==t){
flag=true;
cout<<"FAIL"<<endl;
break;}}
if(flag==false){
sv[++len]=t;
cout<<"OK"<<endl;}
}
else{
bool flag=false;
for(int i=1;i<=len;i++){
if(sv[i]==t){
flag=true;
cout<<sv[i].p<<endl;
break;}}
if(flag==false) cout<<"FAIL"<<endl;}}
}