w可以是两位数
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int read()
{
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='n') return 111;
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
x=x*10+c-'0';
c=getchar();
}
return f*x;
}
char readchar()
{
char c=getchar();
while(c!='E'&&c!='F') c=getchar();
return c;
}
int t,L,judge,hour,top,stk[200],x,y,now,work;
char O[10],f,k;
bool flag['z'+50],er,timeflag[200],workflag[200];
int main()
{
t=read();
while(t--)
{
L=read(); scanf("%s",O);
top=0; hour=0; er=0; now=0; work=0;
memset(flag,0,sizeof(flag));
memset(timeflag,0,sizeof(timeflag));
memset(workflag,0,sizeof(workflag));
if(O[2]=='1') judge=0;
else
{
judge=O[4]-'0';
if(O[5]>='0'&&O[5]<='9') judge=judge*10+O[5]-'0';
}
for(int i=1;i<=L;i++)
{
f=readchar();
if(f=='F')
{
cin>>k; x=read(); y=read();
if(flag[k]) er=1;
flag[k]=1;
stk[++top]=k;
if(x<100&&y>100)
{
now++;
if(work>=0) hour=max(hour,now);
timeflag[top]=1;
}
if(x>y)
{
work--;
workflag[top]=1;
}
}
else
{
flag[stk[top]]=0;
if(timeflag[top])
{
timeflag[top]=0;
now--;
}
if(workflag[top])
{
workflag[top]=0;
work++;
}
top--;
if(top<0) er=1;
}
}
if(top||er)
{
cout<<"ERR\n";
continue;
}
if(hour==judge) cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}