#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
int n,m;
const int maxn=82;
char str[maxn];
bool flag;
map<string,string> mp;
string handle(string fa){
int len=strlen(str);
len--;
for(int i=0;i<len;i++){
if(str[i]=='"'){
string tmp;
while(str[++i]!='"'){
if(str[i]!='\\'){
tmp+=str[i];
}else{
++i;
tmp+=str[i];
}
}
if(flag==false){
fa=fa+'.'+tmp;
flag=true;
}else{
mp[fa]="STRING "+tmp;
flag=false;
int sz=fa.length();
int j=sz-1;
for(;j>=0;j--){
if(fa[j]=='.') break;
}
if(j<0) fa="";
else fa=fa.substr(0,j);
}
}else if(str[i]=='{'){
mp[fa]="OBJECT";
flag=false;
}else if(str[i]=='}'){
int sz=fa.length();
int j=sz-1;
for(;j>=0;j--){
if(fa[j]=='.') break;
}
if(j<0) fa="";
else fa=fa.substr(0,j);
}else{
continue;
}
}
return fa;
}
int main(){
cin>>n>>m;
getchar();
string fa="";
flag=false;
while(n--){
fgets(str,maxn,stdin);
fa=handle(fa);
}
while(m--){
string query;
cin>>query;
query='.'+query;
if(mp.find(query)!=mp.end()){
cout<<mp[query]<<endl;
}else{
cout<<"NOTEXIST"<<endl;
}
}
return 0;
}