#include<bits/stdc++.h>
using namespace std;
map<string, int>si;
int n;
bool in(char x) {
return (x >= '0' && x <= '9');
}
bool check(string a) {
if (!in(a[0])) {
return 0;
}
long long s = 0, i = 0;
while (i < 3 && in(a[i])) {
if (s == 0 && a[i] == '0') {
i++;
break;
}
s *= 10;
s += a[i] - '0';
i++;
}
if (s > 255)return 0;
if (a[i] != '.')return 0;
i++;
s = 0;
while (i < 30 && in(a[i])) {
if (s == 0 && a[i] == '0') {
i++;
break;
}
s *= 10;
s += a[i] - '0';
i++;
}
if (s > 255)return 0;
if (a[i] != '.')return 0;
i++;
s = 0;
while (i < 30 && in(a[i])) {
if (s == 0 && a[i] == '0') {
i++;
break;
}
s *= 10;
s += a[i] - '0';
i++;
}
if (s > 255)return 0;
if (a[i] != '.')return 0;
i++;
s = 0;
while (i < 30 && in(a[i])) {
if (s == 0 && a[i] == '0') {
i++;
break;
}
s *= 10;
s += a[i] - '0';
i++;
}
if (s > 255)return 0;
if (a[i] != ':')return 0;
i++;
s = 0;
while (i < 30 && in(a[i])) {
if (s == 0 && a[i] == '0') {
i++;
break;
}
s *= 10;
s += a[i] - '0';
i++;
}
if (s > 65535)return 0;
if (i < a.size())return 0;
return 1;
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
string a;
string x;
cin >> a >> x;
if (check(x)) {
if (a == "Server") {
if (si[x] != 0) {
printf("FAIL\n");
} else {
si[x] = i;
printf("OK\n");
}
} else {
if (si[x] != 0) {
printf("%d\n", si[x]);
} else {
printf("FAIL\n");
}
}
} else {
printf("ERR\n");
}
}
return 0;
}