#include<cstdio>
#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
char s1[2000],s2[2000];
void check(char s[],int &x,int &y) {
//printf("!%s!\n",s+1);
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);
//printf("!%s!",s+1);
bool flag=0;
ans=1,log=0;
check(s1+1,ti,p);
//printf("%d\n",len);
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;
}
}
//printf("!%c!\n",pf);
if(pf=='E') {//退出循环
//printf(">\n");
if(s0.empty()==1) {
//printf("<\n");
flag=1;
}
else {
s0.pop();
--use[i];
}
//printf("<>%d\n",s0.empty());
}
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;
}
//printf("!%c!\n",va);,printf("???\n")
scanf("%s",s2+1);
//printf("!%s!\n",s2+1);
r(s2+1,fr);
scanf("%s",s2+1);
//printf("!%s!\n",s2+1);
r(s2+1,to);
int puse=va-'a'+1;
if(use[puse]) {
flag=1;
}
++use[puse];
//printf("%d %d\n",fr,to);
if(fr!=101&&to!=101) {
if(fr<=to)
ans*=(to-fr+1);
}
else {
if(fr!=101&&(log==0||(!s0.empty()))) {
++log;
}
}
s0.push(puse);
}
}
//printf("p=%d ans=%d log=%d ti=%d\n",p,ans,log,ti);
if(s0.empty()==0)
flag=1;
while(!s0.empty())
s0.pop();
//puts("");
if(flag)//运行错误
printf("ERR\n");
else {
if((p==0&&ans==ti)||(p==1&&log==ti))//时间复杂度正确
printf("Yes\n");
else//时间复杂度错误
printf("No\n");
}
//puts("");
}
return 0;
}