#include <map>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <string>
using namespace std;
int n;
int server_num = 0;
string ip;
map<string, int>server;
int checkDot(string s) {
int t_dot = 0;
int len = s.length();
for (int i = 0; i < len; i ++) {
if (s[i] == '.') {
t_dot++;
} else if (s[i] == ':') {
break;
}
}
if (t_dot == 3) {
return 1;
} else {
return 0;
}
}
int checkZero(string s) {
string temp = "";
int i = 0;
int sum = 0;
for (int j = 0; j < 5; j++) {
while (s[i] != '.' && s[i] != ':') {
temp += s[i];
i++;
}
if (temp.length() == 1) {
sum++;
} else {
if (temp[0] == '0') {
continue;
} else {
sum++;
}
}
temp = "";
i++;
}
if (sum == 5) {
return 1;
} else {
return 0;
}
}
int checkEdge(string s) {
string temp = "";
int sum = 0;
int i = 0;
for (int j = 0; j < 4; j++) {
while (s[i] != '.' && s[i] != ':') {
temp += s[i];
i++;
}
int temp_1 = stoi(temp);
if (temp_1 >= 0 && temp_1 <= 255) {
sum++;
}
temp = "";
i++;
}
while (s[i] != '.' && s[i] != ':') {
temp += s[i];
i++;
}
int temp_1 = stoi(temp);
if (temp_1 >= 0 && temp_1 <= 65535) {
sum++;
}
if (sum == 5) {
return 1;
} else {
return 0;
}
}
int checkIp(string ip) {
if (!checkDot(ip)) {
return 0;
}
if (!checkZero(ip)) {
return 0;
}
if (!checkEdge(ip)) {
return 0;
}
return 1;
}
int check_if_server_in(string ip) {
for (auto i = server.begin(); i != server.end(); i++) {
if (i->first == ip) {
return 0;
}
}
return 1;
}
string t1;
string t2;
int main() {
freopen("P7911_2.in", "r", stdin);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> t1;
cin >> t2;
if (!checkIp(t2)) {
cout << "ERR" << endl;
continue;
}
if (t1 == "Client") {
int num = 0;
for (auto i = server.begin(); i != server.end(); i++) {
if (i->first == t2) {
cout << server[t2] << endl;
} else {
num++;
}
}
if (num == server_num) {
cout << "FAIL" << endl;
}
} else {
if (!check_if_server_in(t2)) {
cout << "FAIL" << endl;
continue;
}
server[t2] = i;
server_num ++;
cout << "OK" << endl;
}
}
fclose(stdin);
return 0;
}