#include <bits/stdc++.h>
using namespace std;
bool v[11001];
int t,row,ma=-1,fu;
int c2,c3;
string fuza;
deque<int>F;
deque<char>c;
void f()
{
if(fuza[2]>='0'&&fuza[2]<='9')fu=0;
else fu=int(fuza[4]-'0');
}
void Change(string ch1,string ch2)
{
if(ch1=="n")c2=int('n');
if(ch2=="n")c3=int('n');
if(!c2) for(int j=1,i=ch1.size()-1;i>=0;i--,j*=10)c2+=int(ch1[i]-'0')*j;
if(!c3) for(int j=1,i=ch2.size()-1;i>=0;i--,j*=10)c3+=int(ch2[i]-'0')*j;
}
int main(){
cin>>t;
while(t--)
{
bool flag=0;
char ch,ch1;
string ch2,ch3;
memset(v,0,sizeof(v));
while(!F.empty())F.pop_front();
ma=-1;
F.push_back(0);
cin>>row>>fuza;
f();
while(row)
{
cin>>ch;
if(ch=='F')
{
cin>>ch1>>ch2>>ch3;
c2=0,c3=0;
Change(ch2,ch3);
c.push_back(ch1);
if(v[ch1])
{
flag=1;
}
v[ch1]=1;
int tmp;
if(c3>=0&&c3<=100&&c2>=0&&c2<=100&&c2<=c3)tmp=0;
else if(c2==c3&&c2==int('n'))tmp=0;
else if(c2>=0&&c2<=100&&c3==int('n'))
{
tmp=1;
}
else tmp=-1;
if(F.back()!=-1)tmp+=F.back();
else tmp=-1;
ma=max(ma,tmp);
F.push_back(tmp);
row--;
}
else if(ch=='E')
{
v[int(c.back())]=0;
c.pop_back();
F.pop_back();
row--;
}
}
if(ma==-1)ma=0;
if(flag||F.size()>1)cout<<"ERR"<<endl;
else if(fu!=ma||F.size()==0)cout<<"No"<<endl;
else if(fu==ma) cout<<"Yes"<<endl;
}
return 0;
}