#include<iostream>
#include<map>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
#include<vector>
#include<deque>
#include<queue>
#include<set>
#include<sstream>
#include<stack>
#include<fstream>
#define ll long long
#define ull unsigned long long
#define endl '\n'
#define M 2005
#define INF 0x3f3f3f3f3f
#define mod 73744987
using namespace std;
int n;
char op[45];
char ad[45];
int fa[300],fb[300],fc[300],fd[300],fe[90000];
int sum=0;
int hash[1001];
struct ser{
int a,b,c,d,e;
int num;
}se[M];
int ccnt;
int ha[83744987];
bool F(int len,int &a,int &b,int &c,int &d,int &e){
if(len<9) return 0;
a=1;b=1;c=1;d=1;e=1;
if(!(ad[0]=='0'&&ad[1]=='.'))
if(ad[0]<='0'||ad[0]>'9') return 0;
else a=int(ad[0]-'0');
int i=1;
for(;i<len;i++){
if(ad[i]<'0'||ad[i]>'9'){
if(ad[i]=='.') break;
else return 0;
}
else a=a*10+int(ad[i]-'0');
if(a>255) return 0;
}if(a>255) return 0;
i++;
if(!(ad[i]=='0'&&ad[i+1]=='.'))
if(ad[i]<='0'||ad[i]>'9') return 0;
else b=int(ad[i]-'0');
i++;
for(;i<len;i++){
if(ad[i]<'0'||ad[i]>'9'){
if(ad[i]=='.') break;
else return 0;
}else b=b*10+int(ad[i]-'0');
if(b>255) return 0;
}if(b>255) return 0;
i++;
if(!(ad[i]=='0'&&ad[i+1]=='.'))
if(ad[i]<='0'||ad[i]>'9') return 0;
else c=int(ad[i]-'0');
i++;
for(;i<len;i++){
if(ad[i]<'0'||ad[i]>'9'){
if(ad[i]=='.') break;
else return 0;
}else c=c*10+int(ad[i]-'0');
if(c>255) return 0;
}if(c>255) return 0;
i++;
if(!(ad[i]=='0'&&ad[i+1]==':'))
if(ad[i]<='0'||ad[i]>'9') return 0;
else d=int(ad[i]-'0');
i++;
for(;i<len;i++){
if(ad[i]<'0'||ad[i]>'9'){
if(ad[i]==':') break;
else return 0;
}
else d=d*10+int(ad[i]-'0');
if(d>255) return 0;
}if(d>255) return 0;
i++;
if(!(i==len&&ad[i]=='0'))
if(ad[i]<='0'||ad[i]>'9') return 0;
else e=int(ad[i]-'0');
i++;
for(;i<len;i++){
if(ad[i]<'0'||ad[i]>'9')return 0;
else e=e*10+int(ad[i]-'0');
if(e>65535) return 0;
}
if(e>65535) return 0;
return 1;
}
bool com(int aa,int bb,int cc,int dd,int ee){
if(fa[aa]&&fb[bb]&&fc[cc]&&fd[dd]&&fe[ee]) return 0;
fa[aa]=1;fb[bb]=1;fc[cc]=1;fd[dd]=1;fe[ee]=1;
sum++;
se[sum].a=aa;se[sum].b=bb;se[sum].c=cc;se[sum].d=dd;se[sum].e=ee;
ull k=(((aa%mod*bb%mod)%mod*cc%mod)%mod*dd%mod*ee%mod)%mod;
k%=mod;
if(ha[k]!=0) return 0;
ha[k]=ccnt;
return 1;
}
int main(){
scanf("%d",&n);
while(n--){
int a,b,c,d;
int e;
scanf("%s%s",op,ad);
int len=strlen(ad);
ccnt++;
if(!F(len,a,b,c,d,e)) {puts("ERR");continue;}
if(op[0]=='S'){
if(!com(a,b,c,d,e)) puts("FAIL");
else puts("OK");
}else{
ull k=((a%mod*b%mod*c%mod)%mod*d%mod*e%mod)%mod;
k%=mod;
if(ha[k%mod]==0) {puts("FAIL");continue;}
else {printf("%d\n",ha[k%mod]);continue;}
}
}
return 0;
}