#include<bits/stdc++.h>
using namespace std;
bool q(string s){
long long t=0,x=0,y=0,z=0,i,j,k,l;
for(i=0;i<s.size();i++)
{
if((i==0||(s[i-1]=='.'||s[i-1]==':'))&&s[i]>='0'&&s[i]<='9')
z++;
if(s[i]=='.'||s[i]==':')
{
if(s[i]=='.')
x++;
else if(s[i]==':')
y++;
if((x<3&&y))
return 0;
if(!z)
return 0;
if(t<0||t>255)
return 0;
else
{
t=0;
continue;
}
}
else if(s[i]<'0'||s[i]>'9')
return 0;
if(i&&!t&&s[i-1]=='0')
return 0;
t=t*10+s[i]-'0';
}
if(x!=3||y!=1||z!=5)
return 0;
if(t<0||t>65535)
return 0;
else
return 1;
}
string ad[10005],a[10005],op[10005];
int main()
{
int n,i,j,k,l;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>op[i]>>ad[i];
k=1;
int flag=0;
if(op[i]=="Server")
{
if(q(ad[i])==0)
cout<<"ERR"<<'\n';
else
{
for(j=1;j<=k;j++)
{
if(a[j]==ad[i])
{
flag=1;
break;
}
}
if(flag==1)
cout<<"FAIL"<<'\n';
else
{
cout<<"OK"<<'\n';
a[k]=ad[i];
k++;
}
}
}
else
{
if(q(ad[i])==0)
cout<<"ERR"<<'\n';
else
{
for(j=1;j<=n;j++)
{
if(!(op[j]=="Server"))
continue;
if(ad[j]==ad[i])
{
flag=1;
break;
}
}
if(flag==0)
cout<<"FAIL"<<'\n';
else
{
cout<<j<<'\n';
}
}
}
}
}