#include<bits/stdc++.h>
using namespace std;
map<string,bool>b;
map<string,int>c;
bool check(string m){
int sum=0,c=0,d=0;
bool flag=true;
int x=0,y=0;
string tt;
for(int i=0;i<m.size();i++){
if(m[i]=='0'&&m[i+1]>='0'&&m[i+1]<='9'&&(m[i-1]=='.'||m[i-1]==':'||i==0)){
flag=false;
break;
}
if(m[i]=='.'||m[i]==':'){
if(m[i]=='.'){
if(y>=1){
flag=false;
break;
}
x++;
}
else{
if(x<3){
flag=false;
break;
}
y++;
}
if(sum<0||sum>255){
flag=false;
break;
}
// while(sum>0){
// tt[d]=sum%10-'0';
// d++;
// sum/=10;
// }
// if(c<4)
// tt[d]='.';
// else if(c==4)
// tt[d]=':';
// d++;
// if(d==5){
// if(tt!=m){
// flag=false;
// cout << tt << endl << m << endl;
// break;
// }
// }
sum=0;
}else{
sum*=10;
sum+=m[i]-'0';
}
}
if(sum<0||sum>65535||flag==false||x!=3||y!=1)
return false;
return true;
}
int main(){
//freopen("tem3.in","r",stdin);
//freopen("tem3.out","w",stdout);
int a,num=0;
cin >> a;
for(int l=0;l<a;l++){
string n,m;
cin >> n >> m;
if(check(m)==false){
cout <<"ERR" << endl;
continue;
}
if(n=="Server"){
//if(n=="S"){
if(b[m]==true){
cout << "FAIL" << endl;
continue;
}
b[m]=true;
c[m]=l+1;
cout << "OK" << endl;
}
//if(n=="C"){
if(n=="Client"){
if(b[m]==false){
cout << "FAIL" << endl;
continue;
}
cout << c[m] << endl;
}
}
return 0;
}