#include<bits/stdc++.h>
using namespace std;
int n,xb;
string op,ip;
struct c
{
int id;
string ip;
}server[1001];
bool check(string ip)
{
int a=0,f=0,b=0;
if(!isdigit(ip[0]))
return(false);
for(int i=0;i<ip.size();++i)
{
if(ip[i]=='.')
++f;
if(ip[i]==':')
{
++b;
ip[i]='.';
}
if(!((int(ip[i])>=48&&int(ip[i])<=57)||int(ip[i])==46||int(ip[i])==58))
return(false);
}
if(f!=3||b!=1)
return(false);
ip=':'+ip+':';
for(int i=1;i<ip.size();++i)
{
if(ip[i]==48&&isdigit(ip[i+1])&&(ip[i-1]==':'||ip[i-1]=='.'))
return(false);
if(isdigit(ip[i]))
a=a*10+ip[i]-48;
if(ip[i]=='.')
{
if(a>255||a<0)
return(false);
a=0;
}
if(ip[i]==':')
if(a>65535||a<0)
return(false);
}
return(true);
}
int main()
{
scanf("%d",&n);
for(int k=1;k<=n;++k)
{
cin>>op>>ip;
if(op=="Server")
{
if(!check(ip))
{
printf("ERR\n");
continue;
}
bool t=true;
for(int i=1;i<=xb;++i)
if(ip==server[i].ip)
{
t=false;
break;
}
if(t)
{
server[++xb].id=k;
server[xb].ip=ip;
printf("OK\n");
}else
printf("FAIL\n");
}
if(op=="Client")
{
if(!check(ip))
{
printf("ERR\n");
continue;
}
bool t=false;
int id=0;
for(int i=1;i<=xb;++i)
if(ip==server[i].ip)
{
id=server[i].id;
t=true;
break;
}
if(t)
printf("%d\n",id);else
printf("FAIL\n");
}
}
return 0;
}