#include <bits/stdc++.h>
using namespace std;
int a,b,c,d,e;
string s1,s2;
int n;
map<string,int>mp;
bool getnum (string s) {
string s3="";
int p=0,f=0;
int k=0;
int len=s.length();
int tt=0;
s3="";
k=0;
f=0;
if(s[p]=='0') f=1;
while( p<len&&'0'<=s[p]<='9'&&p<len) {
if(s[p]<'0'||s[p]>'9') break;
tt++;
k=1;
a=a*10+s[p]-'0';
p++;
if(s[p]=='0'&&f>=1) f++;
}
if(tt>3) return 0;
if(k==0) return 0;
if(f>=1&&a>0) return 0;
if(f>1) return 0;
while((s[p]<'0'||s[p]>'9')&&p<len) {
s3+=s[p];
p++;
}
if(s3!=".") return 0;
tt=0;
k=0;
s3="";
f=0;
if(s[p]=='0') f=1;
while( p<len&&'0'<=s[p]<='9'&&p<len) {
if(s[p]<'0'||s[p]>'9') break;
k=1;
tt++;
b=b*10+s[p]-'0';
p++;
if(s[p]=='0'&&f>=1) f++;
}
if(tt>3) return 0;
if(k==0) return 0;
if(f>=1&&b>0) return 0;
if(f>1) return 0;
while((s[p]<'0'||s[p]>'9')&&p<len) {
s3+=s[p];
p++;
}
if(s3!=".") return 0;
s3="";
f=0;
k=0;
tt=0;
if(s[p]=='0') f=1;
while( p<len&&'0'<=s[p]<='9'&&p<len) {
if(s[p]<'0'||s[p]>'9') break;
k=1;
tt++;
c=c*10+s[p]-'0';
p++;
if(s[p]=='0'&&f>=1) f++;
}
if(tt>3) return 0;
if(k==0) return 0;
if(f>=1&&c>0) return 0;
if(f>1) return 0;
while((s[p]<'0'||s[p]>'9')&&p<len) {
s3+=s[p];
p++;
}
if(s3!=".") return 0;
s3="";
f=0;
k=0;
tt=0;
if(s[p]=='0') f=1;
while( p<len&&'0'<=s[p]<='9'&&p<len) {
if(s[p]<'0'||s[p]>'9') break;
k=1;
tt++;
d=d*10+s[p]-'0';
p++;
if(s[p]=='0'&&f>=1) f++;
}
if(tt>3) return 0;
if(k==0) return 0;
if(f>=1&&d>0) return 0;
if(f>1) return 0;
while((s[p]<'0'||s[p]>'9')&&p<len) {
s3+=s[p];
p++;
}
if(s3!=":") return 0;
s3="";
f=0;
k=0;
tt=0;
if(s[p]=='0') f=1;
while( p<len&&'0'<=s[p]<='9'&&p<len) {
if(s[p]<'0'||s[p]>'9') break;
k=1;
tt++;
e=e*10+s[p]-'0';
p++;
if(s[p]=='0'&&f>=1) f++;
}
if(tt>5) return 0;
if(k==0) return 0;
if(f>=1&&e>0) return 0;
if(f>1) return 0;
while((s[p]<'0'||s[p]>'9')&&p<len) {
s3+=s[p];
p++;
}
// cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
//cout<<s3<<endl;
if(s3!="") return 0;
if(a>=0&&a<=255&&b>=0&&b<=255&&c>=0&&c<=255&&d>=0&&d<=255&&e>=0&&e<=65535) return 1;
return 0;
}
int main () {
freopen("network.in","r",stdin);
freopen("network.txt","w",stdout);
cin>>n;
// while(1) {
// a=b=c=d=e=0;
// cin>>s1;
// cout<<s1<<endl;
// cout<<getnum(s1)<<endl;
// }
int f=0;
for(int i=1; i<=n; i++) {
cin>>s1>>s2;
a=b=c=d=e=0;
f=getnum(s2);
if(f==0) {
puts("ERR");
continue;
}
if(s1=="Server") {
if(mp[s2]!=0) {
puts("FAIL");
continue;
} else {
mp[s2]=i;
puts("OK");
continue;
}
}
if(s1=="Client") {
if(mp[s2]==0) {
puts("FAIL");
continue;
} else {
printf("%d\n",mp[s2]);
continue;
}
}
}
return 0;
}
去掉freopen 洛谷100,CCF保灵