// CSP-J 2021 RP += INFINITY
#include<bits/stdc++.h>
//#define int long long
using namespace std;
map<string, int> S;
int main(){
//signed main(){
// freopen("network.in", "r", stdin);
// freopen("network.out", "w", stdout);
int n;
cin >> n;
for (int i = 1; i <= n; ++i){
if (i > n) return 0;
bool flag = true;
string op, ad;
int x[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, cnt = 1, dian = 0, mao = 0;
cin >> op >> ad;
if (ad[ad.size() - 1] == ':')
flag = false;
if (ad[0] == '.')
flag = false;
for (int j = 0; j < ad.size(); ++j){
if (flag == false) break;
if (cnt > 5) flag = false;
if (ad[j] == '0' && x[cnt] == 0)
flag = false;
if (ad[j] >= '0' && ad[j] <= '9')
x[cnt] = x[cnt] * 10 + ad[j] - '0';
if (x[cnt] >= 255 && cnt <= 4)
flag = false;
else if (ad[j] == ':'){
++cnt;
if (dian != 3)
flag = false;
++mao;
} else if (ad[j] == '.'){
++cnt;
++dian;
}
if (ad[j] == '.' && ad[j + 1] == '.')
flag = false;
}
if (dian != 3 || mao != 1)
flag = false;
for (int j = 1; j <= 4; ++j)
if (x[j] < 0 || x[j] > 255)
flag = false;
if (x[5] < 0 || x[5] > 65535)
flag = false;
if (flag == false){
cout << "ERR" << endl;
continue;
}
if (op == "Server"){
if (S[ad] != 0){
cout << "FAIL" << endl;
continue;
}
S[ad] = i;
cout << "OK" << endl;
}
if (op == "Client"){
if (S[ad] == 0){
cout << "FAIL" << endl;
continue;
}
cout << S[ad] << endl;
}
}
return 0;
}
rt,求hack数据,要求:IP合法但该程序输出ERR