#include<bits/stdc++.h>
#define zfs signed main()
using namespace std;
const int N=5e5+5;
map<char ,bool>mp;
inline int num(string a){
if(a=="n") return 0x3f3f3f3f;
int p=0;
for(int i=0;i<a.size();i++) p=p*10+a[i]-'0';
return p;
}
zfs{
int t;
cin>>t;
while(t--){
mp.clear();
int l,o,t=0;
string oo;
cin>>l>>oo;
bool flag=1;
for(int i=2,p=0;i<oo.size();i++){
if(oo[i]=='1'&&flag) {
o=0;
break;
}
else if(oo[i]==')') o=p;
else if(oo[i]=='n') flag=0;
else if(oo[i]>='0'&&oo[i]<='9') p=p*10+oo[i]-'0';
}
//o为字符串的复杂度,O(1)记为0
bool fffff=1;
stack<char>bl;//变量名存储
int lyl=0x3f3f3f3f;
for(int i=1,now=0;i<=l;i++){
char op,blm;
cin>>op;
string b,e;
//blm变量名,b->x e->y
if(op=='F'){
cin>>blm>>b>>e;
if(!fffff) continue;
bl.push(blm);
if(mp[blm]) {
//变量名重复
puts("ERR");
fffff=0;
continue;
// break;
}
mp[blm]=1;//标记
if(lyl!=0x3f3f3f3f) continue;//b='n'的情况
if((b=="n"&&e!="n")||num(b)>num(e)) lyl=bl.size();
if(e=="n") {
now++;
if(b=="n") now--;//现在的复杂度
t=max(t,now);
}
}else if(op=='E'){
if(!fffff) continue;
if(bl.empty()&&fffff){
puts("ERR");
fffff=0;
continue;
// break;
}
blm=bl.top();
bl.pop();
if(lyl<=bl.size()){
mp[blm]=0;
lyl=0x3f3f3f3f;
continue;
}
now--;
mp[blm]=0;
}
}
if(!fffff) continue;
if(bl.size()) puts("ERR");
else if(t!=o) puts("No");
else puts("Yes");
}
}