#include<bits/stdc++.h>
using namespace std;
struct con{
string re;
string id;
}s[2010];
bool result(string id){
long long a,b,c,d,e;
char ch[30],ch2[30];
int s = id.size();
for(int i = 0;i < s;++i){
ch[i] = id[i];
}
if(sscanf(ch,"%lld.%lld.%lld.%lld:%lld",&a,&b,&c,&d,&e) != 5) return 0;
if(a < 0||b < 0||c < 0||d < 0||e < 0||a > 255||b > 255||c > 255||d > 255||e > 65535){
return 0;
}
sprintf(ch2,"%lld.%lld.%lld.%lld:%lld",a,b,c,d,e);
for(int i = 0;i < s;++i){
if(ch[i] != ch2[i]){
return 0;
}
}
return 1;
}
int find(int x){
for(int i = 1;i < x;++i){
if(s[i].id == s[x].id&&s[i].re == "Server"){
return i;
}
}
return 0;
}
int n;
int main(){
scanf("%d",&n);
for(int i = 1;i <= n;++i){
cin >> s[i].re >> s[i].id;
if(result(s[i].id)){
if(s[i].re=="Server"){
if(find(i) != 0){
cout << "FAIL\n";
}else{
cout << "OK\n";
}
}else{
int x = find(i);
if(x != 0){
cout <<x<< "\n";
}else{
cout << "FAIL\n";
}
}
}else{
cout << "ERR\n";
}
}
return 0;
}