#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
struct Server{
string name;
int id;
}sv[1002];
int cnt=1;
bool check(string s){
int ne, ns, num;
if(s.size()>25){
return false;
}
for(int i=1; i<=4; i++){
num=0;
if(i<=3){
ne=s.find(".", ns);
}else{
ne=s.find(":", ns);
}
if(ne<0 || ne-ns>3 || ne-ns==0){
return false;
}
if(s[ns]=='0'&&s.size()-ns>1){
return false;
}
for(int j=ns; j<ne; j++){
if(!isdigit(s[j])){
return false;
}
num=num*10+s[j]-'0';
}
if(num>255){
return false;
}
ns=ne+1;
}
if(s.size()-ns>5 || s.size()==ns){
return false;
}
num=0;
for(int i=ns; i<s.size(); i++){
num=num*10+s[i]-'0';
}
if(num>65535){
return false;
}
return true;
}
int unique(string s){
for(int i=1; i<cnt; i++){
if(s==sv[i].name){
return sv[i].id;
}
}
return 0;
}
int main(){
int x;
string s1, s2;
cin>>x;
for(int i=1; i<=x; i++){
cin>>s1>>s2;
if(!check(s2)){
cout<<"ERR"<<endl;
continue;
}
if(s1=="Server"){
if(unique(s2)==0){
cout<<"OK"<<endl;
sv[cnt].id=i;
sv[cnt].name=s2;
cnt++;
}else{
cout<<"FAIL"<<endl;
}
}else{
int num=unique(s2);
if(num==0){
cout<<"FAIL"<<endl;
}else{
cout<<num<<endl;
}
}
}
return 0;
}