#include<cstdio>
#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
char s1[2000],s2[2000];
void check(char s[],int &x,int &y) {
if(s[2]>='0'&&s[2]<='9') {
int i=0,f=0;
while(!isdigit(s[i]))
++i;
while(isdigit(s[i])) {
f=(f<<1)+(f<<3)+(s[i]^48);
++i;
}
y=0;x=f;
return;
}
int i=1,f=0;
while(!isdigit(s[i]))
++i;
while(isdigit(s[i])) {
f=(f<<1)+(f<<3)+(s[i]^48);
++i;
}
y=1;x=f;
}
void r(char s[],int &f) {
int i=0;
f=0;
bool p1=0;
while(!isdigit(s[i])) {
if(s[i]=='n')
f=101,p1=1;
++i;
}
while(isdigit(s[i])&&p1==0) {
f=(f<<1)+(f<<3)+(s[i]^48);
++i;
}
return;
}
int use[30]={0},end[30]={0};
char pft[10],pf;
stack<int> s0;
int main() {
int n,len,t,i;
scanf("%d",&t);
int ans,log;
int ti,p,fr,to;
while(t--) {
memset(use,0,sizeof(use));
scanf("%d",&len);
scanf("%s",s1+1);
bool flag=0;
ans=1,log=0;
check(s1+1,ti,p);
for(i=1;i<=len;++i) {
scanf("%s",&pft);
for(int j=0;j<=strlen(pft);++j) {
if(pft[j]=='E'||pft[j]=='F') {
pf=pft[j];
break;
}
}
if(pf=='E') {
if(s0.empty()==1) {
flag=1;
}
else {
s0.pop();
--use[i];
}
}
else {
char var[10],va;
scanf("%s",var);
for(int j=0;j<=strlen(var+1);++j)
if(var[j]>='a'&&var[j]<='z') {
va=var[j];
break;
}
scanf("%s",s2+1);
r(s2+1,fr);
scanf("%s",s2+1);
r(s2+1,to);
int puse=va-'a'+1;
if(use[puse]) {
flag=1;
}
++use[puse];
if(fr!=101&&to!=101) {
if(fr<=to)
ans*=(to-fr+1);
}
else {
if(fr!=101&&(log==0||(!s0.empty()))) {
++log;
}
}
s0.push(puse);
}
}
if(s0.empty()==0)
flag=1;
while(!s0.empty())
s0.pop();
if(flag)
printf("ERR\n");
else {
if((p==0&&ans==ti)||(p==1&&log==ti))
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}