#include<bits/stdc++.h>
using namespace std;
long long n,booktap=0;
string op;
string book[1010];
int bookh[1010];
bool pd(){
//booktap
long long tap=book[booktap].size()-1,dian=0,fen=0;
bool qq=0;
for(int i=0;i<=tap;i++){
if(book[booktap][i]=='.') dian++;
else if(book[booktap][i]!='1' and book[booktap][i]!='2' and book[booktap][i]!='3' and book[booktap][i]!='4' and book[booktap][i]!='5' and book[booktap][i]!='6' and book[booktap][i]!='7' and book[booktap][i]!='8' and book[booktap][i]!='9' and book[booktap][i]!='0'){
if(book[booktap][i]==':') fen++;
else {
qq=1;
break;
}
}
}
if(qq==1) return false;
if(dian!=4 or fen!=1) return false;
if(tap+1>21) return false;
bool fenf=1;
int i;
for(i=0;i<=tap;){
int j=0;
long long xzd=0;
while(book[booktap][i+j]!='.'){
if(book[booktap][i+j]==':') {
fenf=0;
break;
}
if(j==0 and book[booktap][i+j]=='0'){
qq=0;
break;
}
xzd=xzd*10+book[booktap][i+j]-48;
if(xzd>255){
qq=0;
break;
}
j++;
}
if(qq==0){
break;
}
i+=(j+1);
if(fenf==0){
break;
}
}
if(fenf==0){
long long kkkk=0;
while(i<=tap){
kkkk=kkkk*10+book[booktap][i]-48;
if(kkkk>65535){
qq=0;
break;
}
i++;
}
}
if(qq==0) return false;
return true;
}
void server(int h){
booktap++;
cin>>book[booktap];
bookh[booktap]=h;
for(int i=1;i<booktap;i++){
if(book[i]==book[booktap]){
booktap--;
cout<<"FAIL"<<endl;
return;
}
}
if(pd()){
cout<<"OK"<<endl;
}
else{
booktap--;
cout<<"ERR";
}
}
void client(){
string ad;
cin>>ad;
for(int i=1;i<=booktap;i++){
if(book[i]==ad){
cout<<bookh[i]<<endl;
}
}
}
int main(){
freopen("netbook.in","r",stdin);
freopen("netbook.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++){
cin>>op;
if(op=="Server") server(i);
else client();
}
return 0;
}