75pts\
#include<bits/stdc++.h>
using namespace std;
#define int long long
string op[1005],ab[10005];
bool QWQ(string ab){
ab+='.';
int a=0,b=0,c=0,d=0,e=0,zt=1;
int abc=0,abcd=0;
for(int i=0;i<ab.size();i++){
if(ab[i]=='.'||ab[i]==':'){
zt++;
if(ab[i]==':'){
if(abcd!=3){
return 0;
}
abc++;
}else{
abcd++;
}
continue;
}
if(zt==6){
break;
}else if(zt==5){
e=e*10+(ab[i]-'0');
}else if(zt==4){
d=d*10+(ab[i]-'0');
}else if(zt==3){
c=c*10+(ab[i]-'0');
}else if(zt==2){
b=b*10+(ab[i]-'0');
}else{
a=a*10+(ab[i]-'0');
}
}
if(abc!=1){
return 0;
}
if(a>255||b>255||c>255||d>255||e>65535||zt<6){
return 0;
}
if(ab[0]=='0'&&ab[1]!=':'&&ab[1]!='.'){
return 0;
}
for(int i=1;i<ab.size()-2;i++){
if(ab[i]=='0'&&ab[i+1]!=':'&&ab[i+1]!='.'&&(ab[i-1]==':'||ab[i-1]=='.')){
return 0;
}
}
return 1;
}
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>op[i]>>ab[i];
if(op[i]=="Server"){
bool b=1;
if(QWQ(ab[i])){
for(int j=1;j<i;j++){
if(ab[i]==ab[j]&&op[j]=="Server"){
cout<<"FAIL";
b=0;
break;
}
}
if(b){
cout<<"OK";
}
}else{
cout<<"ERR";
}
}else{
bool b=1;
if(QWQ(ab[i])){
for(int j=1;j<=n;j++){
if(ab[i]==ab[j]&&op[j]=="Server"){
cout<<j;
b=0;
break;
}
}
if(b){
cout<<"FAIL";
}
}else{
cout<<"ERR";
}
}
cout<<endl;
}
return 0;
}