#include<bits/stdc++.h>
using namespace std;
string k,s;
int n;
map<string,int> mp;
bool check(string s){
int mh=0,d=0,num=0;
bool flag=1;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'&&flag) num++,flag=0;
if(s[i]=='.') d++,flag=1;
if(s[i]==':') mh++,flag=1;
}
if(d==3&&num==5&&mh==1) return 1;
else return 0;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>k>>s;
bool now=0,flag=1;
int sum=0;
if(k[0]=='S'){
if(!check(s)){
cout<<"ERR"<<endl;
continue;
}
if(mp[s]){
cout<<"FAIL"<<endl;
continue;
}
for(int j=0;j<s.size();j++){
if(s[j]=='0'&&s[j+1]>='0'&&s[j+1]<='9'&&sum==0){
flag=0;
cout<<"ERR"<<endl;
break;
}
if(s[j]=='.') sum=0;
else if(s[j]==':') now=1,sum=0;
else sum=sum*10+s[j]-'0';
if(now==0&&sum>=256||now==1&&sum>=65536){
flag=0;
cout<<"ERR"<<endl;
break;
}
}
if(flag){
cout<<"OK"<<endl;
mp[s]=i;
}
}
else{
if(!check(s)){
cout<<"ERR"<<endl;
continue;
}
for(int j=0;j<s.size();j++){
if(s[j]=='0'&&s[j+1]>='0'&&s[j+1]<='9'&&sum==0){
flag=0;
cout<<"ERR"<<endl;
break;
}
if(s[j]=='.') sum=0;
else if(s[j]==':') now=1,sum=0;
else sum=sum*10+s[j]-'0';
if(now==0&&sum>=256||now==1&&sum>=65536){
flag=0;
cout<<"ERR"<<endl;
break;
}
}
if(flag){
if(mp[s]) cout<<mp[s]<<endl;
else cout<<"FAIL"<<endl;
}
}
}
return 0;
}