#include<bits/stdc++.h>
using namespace std;
int n;
string s,h[105];
unordered_map<string,int>mp;
stack<int>st;
stack<string>ww;
signed main(){
int t;cin>>t;
while(t--){
mp.clear();
string u,v;
cin>>n>>u;
getline(cin,v);
int tmp=0,ans=0;bool ok=true,nj=false;
for(int i=1;i<=n;i++){
getline(cin,s);
if(!ok)continue;
if(s[0]=='F')ans++;
else{
ans--;
if(ans<0){
ok=false;
continue;
}
mp[ww.top()]=false;ww.pop();
if(st.top()==-1){
st.pop();
continue;
}
tmp+=st.top();
st.pop();
continue;
}
int ct=2;string c="",d="",e="";
for(;ct<s.length();ct++){
if(s[ct]==' ')break;
else c+=s[ct];
}ct++;
for(;ct<s.length();ct++){
if(s[ct]==' ')break;
else d+=s[ct];
}ct++;
for(;ct<s.length();ct++)e+=s[ct];
if(mp[c]){ok=false;continue;}
mp[c]=true;
ww.push(c);
int flag=0;
if(e=="n"&&d!="n")flag++;
if(e!="n"&&d=="n")flag=-1;
if(flag!=-1)st.push(max(flag,tmp));
else{
st.push(-1);
if(i==1)nj=true;
}
tmp=0;
}
if(!ok||ans!=0)cout<<"ERR\n";
else if((nj||tmp==0)&&u=="O(1)")cout<<"Yes\n";
else{
int num=0;
for(int i=4;i<u.length()-1;i++)num=10*num+u[i]-'0';
if(num==tmp)cout<<"Yes\n";
else cout<<"No\n";
}
}
return 0;
}