#include<bits/stdc++.h>
using namespace std;
struct fuwuqi{
string adr;
int num;
}t[1005];
int n,sum;
bool ac(string s){
int ds,ms,len=s.length();
for(int i=0;i<len;i++){
if(s[i]=='.') ds++;
if(s[i]==':') ms++;
if(ms>1||ds>3) return false;
if(ms==1&&ds<3) return false;
}
string num;
for(int i=0;i<len;i++){
if(s[i]>='0'&&s[i]<='9') num+=s[i];
if(s[i]==':'||s[i]=='.'){
int sig=1,sum=0;
for(int j=i-1;j>=i-num.length();j--) {
sum+=num[i]*sig;
sig*=10;
if(j==i-num.length()&&s[j]=='0') return false;
}
if(s[i]=='.'&&sum>255) return false;
if(s[i]==':'&&sum>65535) return false;
}
}
return true;
}
bool rc(string s){
for(int i=1;i<=sum;i++) {
if(t[i].adr==s) return false;
}
return true;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
string op,ad;
cin>>op>>ad;
if(op[1]=='S'){
if(!ac(ad)) cout<<"ERR"<<endl;
else if(!rc(ad)) cout<<"FAIL"<<endl;
else {
sum++;
t[sum].adr=ad;
t[sum].num=i;
cout<<"OK"<<endl;
}
}
else{
if(!ac(ad)) cout<<"ERR"<<endl;
else {
bool findans=false;
for(int j=1;j<=sum;j++){
if(t[j].adr==ad) {
cout<<t[j].num<<endl;
findans=true;
break;
}
}
if(!findans) cout<<"FAIL"<<endl;
}
}
}
return 0;
}