#include <cstdio>
#include <cctype>
#include <cstring>
#include <iostream>
#define LAR(a) (a>=0&&a<=255)
#define LAR2(a) (a>=0&&a<=65535)
using namespace std;
int readMethod(){
string op;
int opi;
cin>>op;
if(op=="Server"){
opi=0;
}
else{
opi=1;
}
return opi;
}
struct Ip{
int a,b,c,d,e;
bool operator==(const Ip y){
return (this->a==y.a)&&(this->b==y.b)&&(this->c==y.c)&&(this->d==y.d)&&(this->e==y.e);
}
};
Ip make_ip(int a, int b, int c, int d, int e){
Ip temp;
temp.a=a;
temp.b=b;
temp.c=c;
temp.d=d;
temp.e=e;
return temp;
}
const Ip specialValue = make_ip(-1,-1,-1,-1,-1);
int getInt(char end = '.'){
int value=0,cnt=0;
int p=0;
bool showed = false;
while(1){
char c = getchar();
if(isdigit(c)){
if(!showed && c=='0'){
p++;
}
if(c!='0'){
showed = true;
if(p!=0){
return -1;
}
}
value *= 10;
value += (c - '0');
}
else if(c==end){
break;
}
else{
return -1;
}
}
if(p>1){
return -1;
}
return value;
}
Ip readIp(){
int a = getInt();
int b = getInt();
int c = getInt();
int d = getInt(':');
int e = getInt('\n');
if(LAR(a)&&LAR(b)&&LAR(c)&&LAR(d)&&LAR2(e)){
return make_ip(a,b,c,d,e);
}
else{
return specialValue;
}
}
void _dbg_echoIp(Ip ip){
if(ip==specialValue){
printf("specialValue");
return;
}
printf("%d.%d.%d.%d:%d", ip.a, ip.b,ip.c,ip.d,ip.e);
}
Ip servers[1005];
int now_servers = 0;
int main(){
int n,cnt=0;
scanf("%d", &n);
while(cnt<n){
int op = readMethod();
getchar();
Ip ip = readIp();
if(ip==specialValue){
printf("ERR\n");
}
else{
if(!op){
bool flag=true;
for(int i=0;i<now_servers;i++){
if(servers[i]==ip){
printf("FAIL\n");
flag=false;
break;
}
}
if(flag){
printf("OK\n");
servers[now_servers]=ip;
}
}
else{
bool flag=true;
for(int i=0;i<now_servers;i++){
if(servers[i]==ip){
printf("%d\n",i+1);
flag=false;
break;
}
}
if(flag){
printf("FAIL\n");
}
}
}
cnt++;
now_servers++;
}
return 0;
}