#include<bits/stdc++.h>
using namespace std;
int n,k1,k2;
string s[1010][5],c[1010],typ;
bool CheckNumber(string s){
int d=0,m=0,sum=0;
for(int i=0;i<s.size();i++){
if(!isdigit(s[i])){
if(s[i]==':'){
m++;
}
if(s[i]=='.'){
d++;
}
continue;
}
if(s[i]=='0'&&!isdigit(s[i-1])){
return 0;
}
sum=sum*10+(s[i]-'0');
if(!isdigit(s[i+1])){
if(m==0){
if(sum<0||sum>255){
return 0;
}
}
else{
if(sum<0||sum>65535){
return 0;
}
}
sum=0;
}
}
if(d!=3||m!=1){
return 0;
}
return 1;
}
int FindServer(string a,int t){
for(int i=1;i<=k1-t;i++){
if(a==s[i][1]){
return i;
}
}
return 0;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>typ;
if(typ=="Server"){
cin>>s[++k1][1];
s[k1][2]=i+'0';
if(!CheckNumber(s[k1][1])){
cout<<"ERR"<<endl;
continue;
}
if(0!=FindServer(s[k1][1],1)){
cout<<"FAIL"<<endl;
continue;
}
cout<<"OK"<<endl;
continue;
}
else{
cin>>c[++k2];
if(!CheckNumber(c[k2])){
cout<<"ERR"<<endl;
continue;
}
if(FindServer(c[k2],0)==0){
cout<<"FAIL"<<endl;
continue;
}
else{
cout<<s[FindServer(c[k2],0)][2]<<endl;
continue;
}
}
}
}