#include<bits/stdc++.h>
using namespace std;
struct node
{
long long id;
string s;
};
int main()
{
long long t,su[5]={255,255,255,255,65535};
vector<node>v;
char ch[5]={'.','.','.',':',':'};
cin>>t;
for(long long i=0;i<t;i++)
{
string a,b;
cin>>a>>b;
b='*'+b+':';
long long sum=0;
bool flag=0;
for(long long j=1,k=0;j<b.size();j++)
{
if(!(b[j]>='0'&&b[j]<='9'))
{
if(sum>su[k]||sum<0||b[j]!=ch[k])
{
flag=1;
break;
}
sum=0;
k++;
}
else
{
sum*=10;
sum+=b[j]-'0';
}
if(b[j]=='0'&&b[j+1]>='0'&&b[j+1]<='9'&&!(b[j-1]>='0'&&b[j-1]<='9'))
{
flag=1;
break;
}
}
if(flag)cout<<"ERR\n";
else
{
flag=0;
long long k=0;
for(;k<v.size();k++)
{
if(v[k].s==b)
{
flag=1;
break;
}
}
if(flag)
{
if(a=="Server")cout<<"FAIL\n";
else cout<<v[k].id<<"\n";
}
else
{
if(a=="Server")
{
cout<<"OK\n";
v.push_back({i+1,b});
}
else cout<<"FAIL\n";
}
}
}
return 0;
}