#include <bits/stdc++.h>
using namespace std;
int n;
string a, b;
map<string, int> mp;
bool check(string s) {
char c[150];
int cnt1 = 0;
int p[150], q[150], cnt2 = 0;
for (int i = 0; i <= 5; i++) p[i] = 0, q[i] = 0;
for (int i = 0; i < s.length(); i++) {
if (s[i] >= '0' && s[i] <= '9') {
if (i == 0 && s[i] == '0' && (s[i + 1] >= '0' && s[i + 1] <= '9')) return 0;
if (i - 1 >= 0 && (s[i - 1] == '.' || s[i - 1] == ':') && s[i] == '0' && (s[i + 1] >= '0' && s[i + 1] <= '9')) return 0;
p[cnt1] = p[cnt1] * 10 + s[i] - '0';
}
else {
cnt1++, c[cnt2++] = s[i], q[cnt2] = i;
}
}
if (cnt1 != 4) return 0;
for (int i = 0; i <= 4; i++) {
if (i <= 3) {
if (p[i] > 255 || p[i] < 0) return 0;
}
else {
if (p[i] > 65535 || p[i] < 0) return 0;
}
}
if (cnt2 != 4) return 0;
q[0] = -1, q[5] = s.length();
for (int i = 1; i <= 5; i++) {
if (q[i] - q[i - 1] == 1) return 0;
}
for (int i = 0; i <= 3; i++) {
if (i <= 2) {
if (c[i] != '.') return 0;
}
else {
if (c[i] != ':') return 0;
}
}
return 1;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a >> b;
if (a == "Server") {
if (check(b)) {
if (mp[b]) printf("FAIL\n");
else {
printf("OK\n");
mp[b] = i;
}
}
else {
printf("ERR\n");
}
}
if (a == "Client") {
if (check(b)) {
if (mp[b]) printf("%d\n", mp[b]);
else printf("FAIL\n");
}
else {
printf("ERR\n");
}
}
}
}