#include<bits/stdc++.h>
using namespace std;
struct computer{
string name="",num="";
int N;
}a[1001];
int n,scnt=0,ccnt=0;
bool check(string s){
int len=s.size(),d=0,nms[10]={};
string k="";
if(len>21){
return 0;
}
for(int i=0;i<len;i++){
if(s[i]>'9'||s[i]<'0'){
k+=s[i];
}
}
if(k!="...:"){
return 0;
}
for(int i=0;i<len;i++){
if(s[i]=='0'&&i<len-1&&i>0&&s[i+1]>='0'&&s[i+1]<='9'&&(s[i-1]>'9'||s[i-1]<'0')){
return 0;
}
if(s[i]>='0'&&s[i]<='9'){
nms[d]*=10;
nms[d]+=s[i]-'0';
}
if(s[i]=='.'||s[i]==':'){
d++;
}
}
for(int i=0;i<4;i++){
if(nms[i]>255){
return 0;
}
}
if(nms[4]>65535){
return 0;
}
return 1;
}
map<string,computer>vis;
int main(){
cin>>n;
for(int j=0;j<n;j++){
cin>>a[j].name>>a[j].num;
if(!check(a[j].num)){
a[j].num="";
cout<<"ERR\n";
}
else if(a[j].name=="Server"){
if(vis[a[j].num].num=="1")cout<<"FALL\n";
else{
vis[a[j].num].N=j+1;
vis[a[j].num].num="1";
cout<<"OK\n";
}
}
else if(a[j].name=="Client"){
ccnt++;
if(vis[a[j].num].num=="1"){
cout<<vis[a[j].num].N<<'\n';
}
else cout<<"FALL\n";
}
}
return 0;
}