#include<bits/stdc++.h>
using namespace std;
string s;long long n;
vector<string> o;
vector<long long> o1;
bool f = true;
long long shuzi(long long m,string a){
long long ans = 0;
bool flag = false;
for(int i = 0;i < a.size();++i){
if(a[i] >= '0' && a[i] <= '9'){
flag = true;
if(m == 1){
ans *= 10;
ans += (int)(a[i]-'0');
}
}
if(flag == true && (a[i] < '0' || a[i] > '9')){
if(m <= 1){
return ans;
}
flag = false;
m--;
}
if(ans < 0 && i == a.size()-1){
return -1;
}
}
return ans;
}
bool shu(char a){
if(a >= '0' && a <= '9'){
return true;
}
return false;
}
bool hefa(string a){
long long x = 0,aga1=0,aga2=0;
for(int i = 0;i < a.size();++i){
if(a[i] == '.'){
aga1++;
}
if(a[i] == ':'){
aga2++;
}
}
if(aga1 == 3 && aga2 == 1){
}else{
return false;
}
for(int i = 0;i < a.size();++i){
if(a[i] == ':' || a[i] == '.'){
if(a[i + 1] == '0' && shu(a[i+2])){
return false;
}
}
}
for(int aaa = 0;aaa < 4;++aaa){
for(int i = x;i < x + 3;++i){
if(i != x && (a[i] == '.' || a[i] == ':')){
x = i + 1;
break;
}
if(!shu(a[i])){
return false;
}
if(i == x + 2){
if(a[i + 1] == '.' && aaa != 3 || a[i + 1] == ':' && aaa == 3){
x = i + 2;
break;
}else{
return false;
}
}
}
}
for(int i = 0;i < 5;++i){
if(i != 4){
if(shuzi(i+1,a) >= 0 && shuzi(i+1,a) <= 255){
}else{
return false;
}
}else{
if(shuzi(i+1,a) >= 0 && shuzi(i+1,a) <= 65535){
}else{
return false;
}
}
}
return true;
}
int main(void){
scanf("%lld",&n);
for(int i = 0;i < n;++i){
cin >> s;f = true;
if(s == "Server"){
cin >> s;
if(!hefa(s)){
printf("ERR\n");
f = false;
continue;
}
if(hefa(s)){
for(int i = 0;i < o.size();++i){
if(o[i] == s){
printf("FAIL\n");
f = false;
break;
}
}
}
if(f == true){
o.push_back(s);
o1.push_back(i+1);
printf("OK\n");
}
}else if(s == "Client"){
cin >> s;
f = false;
if(hefa(s)){
for(int i = 0;i < o.size();++i){
if(o[i] == s){
printf("%lld\n",o1[i]);
f = true;
break;
}
}
if(f == false){
printf("FAIL\n");
}
}else{
printf("ERR\n");
}
}
}
return 0;
}