#include<bits/stdc++.h>
using namespace std;
int n;
struct p{
int a,b,c,d,e;
};
bool is(p x){
return x.a<=255&&x.b<=255&&x.c<=255&&x.d<=255&&x.e<=65535;
}
bool operator==(const p &x,const p &y){
return x.a==y.a&&x.b==y.b&&x.c==y.c&&x.d==y.d&&x.e==y.e;
}
p a[1001];
int num[6];
int main(){
scanf("%d",&n);
int nv=1;
while(n--){
memset(num,0,sizeof(num));
string s1,s2;
cin>>s1>>s2;
int nw=1;
bool isis=1;
for(int i=0;i<s2.size();i++){
if(s2[i]>='0'&&s2[i]<='9'){
s2[i]-=(int)'0';
num[nw]=10*num[nw]+(int)s2[i];
}else{
if(nw==1||nw==2||nw==3){
if(s2[i]!='.'){
printf("ERR\n");isis=0;
break;
}
}else if(nw==4){
if(s2[i]!=':'){
printf("ERR\n");isis=0;
break;
}
}
nw++;
}
}
if(nw!=5){
printf("ERR\n");
continue;
}
p x={num[1],num[2],num[3],num[4],num[5]};
if(!is(x)){
printf("ERR\n");
continue;
}
if(!isis)continue;
if(s1[0]=='S'){
bool f=1;
for(int i=1;i<nv;i++){
if(a[i]==x){
f=0;
printf("FAIL\n");
break;
}
}
if(f){
printf("OK\n");
a[nv++]=x;
}
}else{
bool f=1;
for(int i=1;i<nv;i++){
if(a[i]==x){
printf("%d\n",i);
f=0;
break;
}
}
if(f){
printf("FAIL\n");
}
}
}
}