#include <iostream>
#include <cstdio>
#include <cstring>
#include <map>
using namespace std;
#define ll long long
ll n , cnr;
string op , k;
ll zh (string s)
{
if((s[0] == '0' && s.size() > 1) || s.size() > 5) return 1145141919810;
ll ans = 0;
for(unsigned ll i = 0 ; i < s.size() ; i ++)
{
ans = ans * 10 + (s[i] ^ 48);
}
return ans;
}
bool pd (string s)
{
ll a = s.size() , o , cnt = 0 , lpd = 0 , rpd = 0;
string sss = "\0";
for(ll i = 0 ; i < a ; i ++)
{
if(!((s[i] >= '0' && s[i] <= '9') || s[i] == '.' || s[i] == ':' || s[i] == '\0'))
return false;
if(s[i] >= '0' && s[i] <= '9')
sss = sss + s[i];
else
{
o = zh(sss);
sss = "\0";
cnt++;
if((cnt <= 4 && o > 255) || (cnt == 5 && o > 65535)) return false;
if(s[i] == '.') lpd ++;
else if(s[i] == ':') rpd++;
}
if(lpd > 3 || rpd > 1) return false;
}
o = zh(sss);
cnt++;
if((cnt == 5 && o > 65535) || cnt != 5) return false;
if(lpd != 3 || rpd != 1) return false;
return true;
}
map <string , ll> m;
int main()
{
cin >> n;
for(ll i = 1 ; i <= n ; i ++)
{
cin >> op;
cin >> k;
if(!pd(k)) cout << "ERR\n";
else{
if(op == "Server")
{
if(m.count(k) > 0) cout << "FAIL\n";
else{
cnr++;
m.insert(pair<string , ll> (k , i));
cout << "OK\n";
}
}
else{
if(m.count(k) > 0) cout << m[k] << "\n";
else cout << "FAIL\n";
}
}
}
return 0;
}
求大佬