#include<bits/stdc++.h>
#define F 65535
#define P 255
using namespace std;
map <string,int> ser;
string s,f;
int x,n,p,v,cnt,ll;
bool flag;
int main()
{
cin >> n;
while(n --)
{
cnt ++;
cin >> f >> s;
ll = s.size();
x = 0;
v = 0,p = 0;
bool tt = 0;
for(int i = 0;i < ll;i ++)
{
if(s[i] == '.' || s[i] == ':')
{
tt = 0;
v = i;
break;
}
if(x == 0 && s[i] == '0' && !tt)
tt = 1;
x = x * 10 + s[i] - 48;
if(tt && x != 0)
{
tt = 0;
flag = 0;
break;
}
}
for(int i = v;i < ll;i ++)
{
if(s[i] == '.')
{
tt = 0;
p ++;
if(x > P)
{
flag = 0;
break;
}
x = 0;
}
if(s[i] == ':')
{
tt = 0;
flag = 1;
if(x > 255) flag = 0;
x = 0,v = i + 1;
break;
}
if(p > 3)
{
flag = 0;
break;
}
if(s[i] != '.')
{
if(x == 0 && s[i] == '0' && !tt)
tt = 1;
x = x * 10 + s[i] - 48;
if(tt && x != 0)
{
tt = 0;
flag = 0;
break;
}
}
}
if(v == ll) flag = 0;
for(int i = v;i < ll;i ++)
{
if(s[i] == '.' || s[i] == ':')
{
flag = 0;
break;
}
if(x == 0 && s[i] == '0' && !tt)
tt = 1;
x = x * 10 + s[i] - 48;
if(tt && x != 0)
{
tt = 0;
flag = 0;
break;
}
}
if(x > F) flag = 0;
if(!flag)
{
puts("ERR");
continue;
}
if(f == "Server")
{
if(ser[s]) puts("FAIL");
else
{
ser[s] = cnt;
puts("OK");
}
}
else
{
if(ser[s]) cout << ser[s] << endl;
else puts("FAIL");
}
}
return 0;
}