#include<bits/stdc++.h>
using namespace std;
struct Computers {
char type[20];
int a;
char aa;
int b;
char bb;
int c;
char cc;
int d;
char dd;
int e;
int status;
};
Computers f[1001];
int main() {
int g;
bool h=false;
bool j=false;
bool k=false;
bool l=false;
bool m=false;
bool n=false;
cin>>g;
for(int i=1; i<=g; ++i) {
scanf("%s ",f[i].type);
scanf("%d%c%d%c%d%c%d%c%d",&f[i].a,&f[i].aa,&f[i].b,&f[i].bb,&f[i].c,&f[i].cc,&f[i].d,&f[i].dd,&f[i].e);
}
for(int i=1; i<=g; ++i) {
h=false;
j=false;
k=false;
l=false;
m=false;
n=false;
if(!(((f[i].aa=='.')&&(f[i].bb=='.'))&&((f[i].cc='.')&&(f[i].dd=':')))) {
f[i].status=-1;
continue;
}
if((f[i].a>=0)&&(f[i].a<=255)) {
h=true;
}
if((f[i].b>=0)&&(f[i].b<=255)) {
j=true;
}
if((f[i].c>=0)&&(f[i].c<=255)) {
k=true;
}
if((f[i].d>=0)&&(f[i].d<=255)) {
l=true;
}
if((f[i].e>=0)&&(f[i].e<=65535)) {
m=true;
}
if(!((h&&j))&&((m)&(k&&l))) {
f[i].status=-1;
continue;
}
if(f[i].type=="Server") {
for(int q=1; q<i; ++q) {
if((((f[q].type=="Server")&&((f[i].a==f[q].a)&&(f[i].b==f[q].b)))&&((f[i].c==f[q].c)&&(f[i].d==f[q].d)))&&(f[i].e==f[q].e)) {
break;
}
}
if(!n) {
f[i].status=0;
continue;
}
for(int q=i+1; q<=g; ++q) {
if((((f[q].type=="Client")&&((f[i].a==f[q].a)&&(f[i].b==f[q].b)))&&((f[i].c==f[q].c)&&(f[i].d==f[q].d)))&&(f[i].e==f[q].e)) {
f[i].status=-2;
n=true;
break;
}
}
if(!n) {
f[i].status=0;
continue;
}
} else {
for(int q=1; q<i; ++q) {
if((((f[q].type=="Server")&&((f[i].a==f[q].a)&&(f[i].b==f[q].b)))&&((f[i].c==f[q].c)&&(f[i].d==f[q].d)))&&(f[i].e==f[q].e)) {
f[i].status=q;
n=true;
break;
}
if(!n){
f[i].status=0;
}
}
}
}
for(int i=1; i<=g; ++i){
if(f[i].status==-1){
cout<<"ERR"<<endl;
}
else if(f[i].status==0){
cout<<"FAIL"<<endl;
}
else if(f[i].status==-2){
cout<<"OK"<<endl;
}
else{
cout<<f[i].status<<endl;
}
}
return 0;
}