#include <bits/stdc++.h>
int n;
std::string op, ad;
std::unordered_map <long long, int> hs;
int main(){
std::cin >> n;
for(int k = 1; k <= n; k++){
std::cin >> op >> ad;
int num[5], cnt = 0;
bool eer = false;
num[0] = num[1] = num[2] = num[3] = num[4] = 0;
for(int i = 0; i < ad.length(); i++){
if(ad[i] == '.' || ad[i] == ':'){
cnt++;
if(cnt == 5 || i == ad.length() - 1){
eer = true; break;
}
}
else if(ad[i] >= '0' && ad[i] <= '9'){
num[cnt] = num[cnt] * 10 + ad[i] - '0';
if((cnt <= 3 && num[cnt] > 255)||(cnt == 4 && num[cnt] > 65535)||(num[cnt] == 0 && ad[i] == '0' && ad[i+1] != '.' && ad[i+1] != ':')){
eer = true; break;
}
}
else{
eer = true; break;
}
}
if(eer || cnt < 4){
std::cout<<"ERR\n";
continue;
}
long long id = 0;
for(int i = 0; i < 4; i++) id = id * 1000 + num[i];
id = id * 100000 + num[4];
if(op == "Server"){
if(hs[id] == 0){
hs[id] = k;
std::cout<<"OK\n";
}
else std::cout<<"FAIL\n";
}
else{
if(hs[id] == 0) std::cout<<"FAIL\n";
else std::cout<<hs[id]<<std::endl;
}
}
return 0;
}