#include<bits/stdc++.h>
using namespace std;
long long n,cnt1,cnt2,cnt3,ko,sum;
stack<int> kl;
string s,s2;
map<string,long long> m,mp;
bool check(string s)
{
sum=0;
string ans="1.1.1.1:1";
string f="";
bool f2;
for(long long i=0;i<s.length();i++)
{
f2=false;
while(i<s.length() && s[i]>='0' && s[i]<='9')
{
f2=true;
i++;
}
if(f2)
{
f+='1';
}
if(i<s.length())
{
f+=s[i];
}
}
if(f!=ans)
{
return false;
}
for(long long i=0;i<s.length();i++)
{
if(s[i]==':')
{
ko=i;
break;
}
}
for(long long i=0;i<ko;i++)
{
if(s[i]=='.')
{
if(sum<0 || sum>255)
{
return false;
}
sum=0;
}
else if(s[i]>='0' && s[i]<='9')
{
sum=sum*10+s[i]-'0';
}
}
if(sum>255 || sum<0) return false;
sum=0;
for(long long i=ko+1;i<s.length();i++)
{
sum=sum*10+s[i]-'0';
}
if(sum>65535) return false;
sum=0;
long long kai=0;
for(long long i=0;i<s.length();i++)
{
if(s[i]=='.')
{
for(long long j=kai;j<i;j++)
{
if(s[j]=='0') sum++;
if(s[j]>='1' && s[j]<='9') break;
}
}
if(kai==i-1 && sum==1)
{
kai=i+1;
continue;
}
if(sum==0)
{
kai=i+1;
continue;
}
else
{
return false;
}
}
return true;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>s>>s2;
if(!check(s2)) cout<<"ERR\n";
else if(s == "Server")
{
if(m[s2]==1) cout<<"FAIL\n";
else
{
m[s2]=1;
mp[s2]=i;
cout<<"OK\n";
}
}
else if(s == "Client")
{
if(m[s2]!=1) cout<<"FAIL\n";
else
{
cout<<mp[s2]<<"\n";
}
}
}
return 0;
}