#include<bits/stdc++.h>
using namespace std;
int n;
string op,ad;
int a[100],cnt=0,f[1005][10];
int check(){
for(int i=1;i<=cnt;i++){
bool flag=1;
for(int j=1;j<=5;j++){
if(f[i][j]!=a[j]){
flag=0;
break;
}
}
if(flag==1) return f[i][8];
}
return 0;
}
int main(){
scanf("%d",&n);
for(int k=1;k<=n;k++){
cin>>op>>ad;
int len=ad.size();
int w=0,ans=0,sum=0,flag=0;
while(w<len){
if(ad[w]=='0'&&ad[w+1]>='0'&&ad[w+1]<='9'){
flag=1;
break;
}
if(!(ad[w]>='0'&&ad[w]<='9')) {
flag=1;
break;
}
while(ad[w]>='0'&&ad[w]<='9'){
sum=sum*10+(ad[w]-'0');
if(ans+1<=4){
if(sum>255){
flag=1;
break;
}
}
if(ans+1==5){
if(sum>65535){
flag=1;
break;
}
}
w++;
}
a[++ans]=sum;
if(flag==1) break;
sum=0;
if(ans==4&&ad[w]!=':'){
flag=1;
break;
}
if(ans<4&&ad[w]!='.'){
flag=1;
break;
}
w++;
if(ans>5){
flag=1;
break;
}
}
if(ans!=5) flag=1;
if(flag){
printf("ERR\n");
continue;
}
if(op=="Server"){
if(check()>0){
printf("FAIL\n");
continue;
}
++cnt;
for(int i=1;i<=5;i++){
f[cnt][i]=a[i];
}
f[cnt][8]=k;
printf("OK\n");
}
if(op=="Client"){
int l=check();
if(l==0){
printf("FAIL\n");
continue;
}
printf("%d\n",l);
}
}
return 0;
}