#include<bits/stdc++.h>
using namespace std;
int checko(string O){
if(O=="O(1)")return 0;
if(O[5]==')')return (int)(O[4]-'0');
return (int)((int)(O[4]-'0')*10+(int)(O[5]-'0'));
}
int numb(string T){
if(T=="n")return 10000;
int num=0;
for(int i=0;i<T.length();i++){
num*=10;
num+=T[i]-'0';
}
return num;
}
void solve(){
int n,o;
string O;
cin>>n>>O;
o=checko(O);
string cz;
string jl[101];
map<char,bool> mp;
for(int i=0;i<n;i++){
char c;
cin>>c;
cz=cz+c;
if(c=='F'){
string bl,st,ed;
cin>>bl>>st>>ed;
jl[i]=bl+st+" "+ed;
}
}
int ix=0,ib=0,cs[101],maxi=0;
char stb[101];
int o1=0;
for(int i=0;i<=n;i++)cs[i]=0;
for(int i=0;i<n;i++){
if(cz[i]=='F'){
ix++;
maxi=max(maxi,ix);
string bl,st,ed;
bl=jl[i][0];
int soe=0;
string num="";
for(int j=1;j<jl[i].length();j++){
if(jl[i][j]==' '){
st=num;
num="";
soe=1;
}
else num=num+jl[i][j];
}
ed=num;
char bb=bl[0];
stb[ix]=bb;
if(mp[bb]==1){
printf("ERR\n");
return ;
}
mp[bb]=1;
if(st!="n"&&ed=="n"){
cs[ix]=1;
}
if(st=="n"&&ed!="n"&&cs[ix]!=1&&ix>=maxi||numb(st)>numb(ed))cs[ix]=-1;
}
else {
if(ix<=0){
printf("ERR\n");
return ;
}
mp[stb[ix]]=0;
cs[ix+1]=0;
ix--;
int o2=0;
for(int j=0;j<n;j++){
if(cs[j]==1)o2++;
if(cs[j]==-1)break;
}
o1=max(o1,o2);
}
maxi=max(maxi,ix);
}
if(ix!=0){
printf("ERR\n");
return ;
}
int o2=0;
for(int i=0;i<n;i++){
if(cs[i]==1)o2++;
if(cs[i]==-1)break;
}
o1=max(o1,o2);
if(o1==o)printf("Yes\n");
else{
printf("No\n");
}
}
int main(){
int _;
scanf("%d",&_);
while(_--){
solve();
}
return 0;
}