#include "iostream"
#include "cstdio"
#include "cstring"
#include "map"
using namespace std;
int n;
map<string,int> mp;
string a,b;
bool check (string s){
int sum1=0,sum2=0;
int l=s.size();
for (int i=0;i<l;i++){
if (s[i]=='.') sum1++;
else if (s[i]==':') sum2++;
}
if (sum1!=3 || sum2!=1) return false;
int i=0;
long long s1=0;
bool flag=0;
while (s[i]!='.'){
if (s1==0 && s[i]=='0') flag=1;
s1=s1*10+(s[i]-'0');
i++;
}
if ((flag==1 && s1>0) || (s1<0 || s1>255)) return false;
flag=0,s1=0;
i++;
while (s[i]!='.'){
if (s1==0 && s[i]=='0') flag=1;
s1=s1*10+(s[i]-'0');
i++;
}
if ((flag==1 && s1>0) || (s1<0 || s1>255)) return false;
flag=0,s1=0;
i++;
while (s[i]!='.'){
if (s1==0 && s[i]=='0') flag=1;
s1=s1*10+(s[i]-'0');
i++;
}
if ((flag==1 && s1>0) || (s1<0 || s1>255)) return false;
flag=0,s1=0;
i++;
while (s[i]!=':'){
if (s1==0 && s[i]=='0') flag=1;
s1=s1*10+(s[i]-'0');
i++;
}
if ((flag==1 && s1>0) || (s1<0 || s1>255)) return false;
flag=0,s1=0;
i++;
while (i<l){
if (s1==0 && s[i]=='0') flag=1;
s1=s1*10+(s[i]-'0');
i++;
}
if ((flag==1 && s1>0) || (s1<0 || s1>65535)) return false;
return true;
}
int main(){
freopen ("P7911_13.in","r",stdin);
freopen ("P7911.out","w",stdout);
scanf ("%d",&n);
for (int i=1;i<=n;i++){
cin >> a >> b;
if (a[0]=='S'){
if (!check(b)) puts("ERR");
else{
if (mp[b]>0) puts("FAIL");
else{
puts("OK");
mp[b]=i;
}
}
}
else{
if (!check(b)) puts("ERR");
else{
if (mp[b]>0){
printf ("%d\n",mp[b]);
}
else puts("FAIL");
}
}
}
return 0;
}