#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n;
map <string,ll> m;
bool zero(string s){
if(s.size()==0){
return 0;
}
if(s[0]=='0'&&s.size()!=1){
return 0;
}else{
return 1;
}
}
bool check(string s){
ll cnt1=0,cnt2=0;
string a[7];
ll num[7]={0};
for(ll i=0;i<s.size();i++){
if(s[i]=='.'){
cnt1++;
if(cnt1>3){
return 0;
}
}
if(s[i]==':'){
cnt2++;
if(cnt2>1||i==s.size()-1||cnt1<3){
return 0;
}
}
}
if(cnt1!=3||cnt2!=1){
return 0;
}
ll cnt=0;
for(ll i=0;i<s.size();i++){
if(s[i]=='.'||s[i]==':'){
cnt++;
continue;
}else{
a[cnt]+=s[i];
}
}
for(ll i=0;i<cnt;i++){
if(!zero(a[i])){
return 0;
}else{
string ls=a[i];
for(ll j=0;j<ls.size();j++){
num[i]=num[i]*10+ls[j]-48;
}
}
}
string ls=a[4];
for(ll j=0;j<ls.size();j++){
num[4]=num[4]*10+ls[j]-48;
}
if(num[0]<=255&&num[1]<=255&&num[2]<=255&&num[3]<=255&&num[4]<=65535){
return 1;
}else{
return 0;
}
}
int main(){
cin>>n;
string s;
for(ll i=1;i<=n;i++){
string kind;
cin>>kind>>s;
if(!check(s)){
printf("ERR\n");
continue;
}
if(kind=="Server"){
if(m[s]!=0){
printf("FAIL\n");
}else{
printf("OK\n");
m[s]=i;
}
}else{
if(m[s]==0){
printf("FAIL\n");
}else{
printf("%lld\n",m[s]);
}
}
}
return 0;
}