#include<bits/stdc++.h>
using namespace std;
int n;
string a;
char as;
bool check(string x) {
int sum=1,k=0,vis;
for(int i=7; i<x.size(); i++) {
if(x[i]=='.'||x[i]==':'||i==x.size()-1) {
if(x[i]=='.') {
vis++;
if(vis==4)
return 1;
}
if(i==x.size()-1) {
k=k*10+x[i]-'0';
}
if(sum<=4) {
if(0<=k&&k<=255) {
k=0;
sum++;
continue;
} else {
// cout<<k<<" "<<endl;
return 1;
}
}
if(sum==5) {
if(0<=k&&k<=65535) {
k=0;
sum++;
continue;
} else {
//cout<<k<<" "<<endl;
return 1;
}
}
if(sum>5) {
//cout<<">5"<<endl;
return 1;
}
//cout<<k<<endl;
k=0;
continue;
}
k=k*10+x[i]-'0';
}
return 0;
}
map<string ,int>p;
int main() {
cin>>n;
scanf("\n");
for(int i=1; i<=n; i++) {
getline(cin,a);
//cout<<a[0]<<endl;
if(a[0]=='S') {
// cout<<p.count(a)<<endl;
string k;
for(int j=7; j<a.size(); j++) {
k+=a[j];
}
if(check(a)) {
cout<<"ERR"<<endl;
} else if(p.count(k)!=0) {
cout<<"FALL"<<endl;
}
else {
cout<<"OK"<<endl;
p[k]=i;
// cout<<p[k]<<endl;
}
} else {
string k;
for(int j=7; j<a.size(); j++) {
k+=a[j];
} //cout<<k<<endl;
//cout<<p.count(k)<<endl;
if(check(a)) {
cout<<"ERR"<<endl;
}
else if(p.count(k)==0) {
cout<<"FALL"<<endl;
} else {
cout<<p[k]<<endl;
}
}
}
return 0;
}
求调