#include<bits/stdc++.h>
#define MAXN 20005
using namespace std;
string s,a;
long long st[MAXN][15],top=0;
int main()
{
//freopen("P7911_13.in","r",stdin);
//freopen("66.out","w",stdout);
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;++i){
cin>>a;
cin>>s;
long long fushu=0,f=0,t=0,b=0,qiandao=0,o=0,p=s.size();
//ERR
top++;
for(j=0;j<p;++j){
if(s[j]=='-'){
fushu=1;
break;
}
if(s[j]=='.'){
if(f>=3||s[j-1]=='.'||s[j-1]==':'){
b=1;
break;
}
if(t>255){
b=1;
break;
}
st[top][++o]=t;
t=0,f++,qiandao=0;
}
else{
if(s[j]==':'){
if(s[j-1]=='.'||s[j-1]==':'){
b=1;
break;
}
if(f!=3){
b=1;
break;
}
if(t>255){
b=1;
break;
}
st[top][++o]=t;
t=0,f++,qiandao=0;
}
else{
if(s[j]<='9'&&s[j]>='0'){
t=t*10+(s[j]-'0');
if((s[j]-'0')==0&&qiandao==0&&s[j+1]<='9'&&s[j+1]>='0'){
b=1;
break;
}
qiandao=1;
}
else{
b=1;
break;
}
}
}
}
st[top][++o]=t;
st[top][++o]=i;
if(b==1||t>65535||fushu==1||s[p-1]==':'){
printf("ERR\n");
top--;
continue;
}
if(a[0]=='S'){//服务机
int chongfu=0;
for(j=1;j<top;++j){
if(st[j][1]==st[top][1]&&st[j][2]==st[top][2]&&st[j][3]==st[top][3]&&st[j][4]==st[top][4]&&st[j][5]==st[top][5]){
chongfu=1;
break;
}
}
if(chongfu==1){
top--;
printf("FAIL\n");
}
else
printf("OK\n");
}
else{//客户机
int keyi=0,shu=0;
for(j=0;j<top;++j){
if(st[j][1]==st[top][1]&&st[j][2]==st[top][2]&&st[j][3]==st[top][3]&&st[j][4]==st[top][4]&&st[j][5]==st[top][5]){
keyi=1,shu=st[j][6];
break;
}
}
if(keyi==0)
printf("FAIL\n");
else
printf("%d\n",shu);
top--;
}
}
return 0;
}