#include<bits/stdc++.h>
using namespace std;
int n;
string s1;
struct node{
int k=0,ans=0;
string s;
}c[1005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s1>>c[i].s;
if(s1=="Server") c[i].k=1;
int f=0,q=0;
for(int j=c[i].s.length()-1;j>=0;j--){
int l=0,sum=0;
while(c[i].s[j]!=':'&&c[i].s[j]!='.'&&j>=0){
sum+=pow(10,l)*(c[i].s[j]-'0');
l++; j--;
}
q++;
if((q==1&&c[i].s[j]=='.')||(q>1&&c[i].s[j]==':')||(q>5)){
c[i].ans=-2;
break;
}
if(c[i].s[j]==':'){
if(sum>65535||sum<0||(c[i].s[j+1]=='0'&&c[i].s[j+2]>='0'&&c[i].s[j+2]<='9')){
c[i].ans=-2;
break;
}
}
else{
if(sum>255||sum<0||(c[i].s[j+1]=='0'&&c[i].s[j+2]>='0'&&c[i].s[j+2]<='9')){
c[i].ans=-2;
break;
}
}
}
}
for(int i=1;i<=n;i++){
if(c[i].k==1&&c[i].ans==0){
c[i].ans=-1;
for(int j=i+1;j<=n;j++){
if(c[j].k==1&&c[j].ans==0&&c[i].s==c[j].s){
c[j].ans=-3;
}
}
}
}
for(int i=1;i<=n;i++){
if(c[i].k==1&&c[i].ans==-1){
for(int j=i+1;j<=n;j++){
if(c[j].k==0&&c[j].ans==0&&c[i].s==c[j].s){
c[j].ans=i;
}
}
}
}
for(int i=1;i<=n;i++){
if(c[i].ans==-1) cout<<"OK";
else if(c[i].ans==-2) cout<<"ERR";
else if(c[i].ans==-3||c[i].ans==0) cout<<"FAIL";
else cout<<c[i].ans;
cout<<endl;
}
return 0;
}