#include<bits/stdc++.h>
using namespace std;
const double pi=3.14;
const int inf=0x3f3f3f3f;
const int NIL=-1;
const int MOD=1e9+7;
#define f(i,l,r) for(int i=l;i<=r;i++)
int domath(string x){
if (x=="n") return inf;
int len=x.size(),c=1,num=0;
for (int i=len-1;i>=1;i--){
num+=(c*int(x[i]-48));
c*=10;
}
return num;
}
/*string makestring(int x){
char final[100];
if (x==0){
final[0]='O';
final[1]='(';
final[2]='n';
final[3]='^';
}else{
//final="O(n^";
final[0]='O';
final[1]='(';
final[2]='n';
final[3]='^';
cout<<final<<endl;
int i=4;
while(x>0){
int num=x%10;
final[i]=char(num+48);
x/=10;
i++;
}
final[i]==')';
}
return final;
}*/
int judge(string x,int num,bool flag){
if (x[2]=='n'){
int c=1,numm=0;
for (int i=x.size()-2;i>=4;i--){
numm+=(c*int(x[i]-48));
c*=10;
}
if (flag==1){
if (num==numm) return 1;
else return 0;
}else{
return 0;
}
}else{
if (flag==0) return 1;
else return 0;
}
}
int solve(){
int IMF;
stack<char> s;
string jud;
bool flag=0;
int vis[30]={};// In order to judge if the letter has been used.
int n,sumf,maxf,maxx,flagm=-1;//sumf records the sum of Function,maxf records maxnumber of the covered F.
sumf=maxf=0;
maxx=-inf;
cin>>n;
cin>>jud;
for (int i=1;i<=n;i++){
char opt;
cin>>opt;
//if (flag==1&&opt=='F') continue;
if (opt=='F'){
char a;
string b,c;
cin>>a;
cin>>b>>c;
if (vis[int(a-48)]==1) {IMF=-1;}
if (a>'z'||a<'a') {IMF=-1;}
int bb=domath(b);
int cc=domath(c);
if (bb>cc){
sumf++;
vis[int(a-48)]=1;
s.push(a);
flag=1;
flagm=sumf;
//continue;
}else if (bb==cc){
sumf++;
vis[int(a-48)]=1;
s.push(a);
}else if (bb<cc){
sumf++;
if (flag!=1)maxf++;
vis[int(a-48)]=1;
s.push(a);
}
}else{
if (flag==1&&flagm==sumf) flag=0,flagm=-1;
if (s.empty()) {IMF=-1;}
vis[int(s.top()-48)]=0;
s.pop();
maxx=max(maxf,maxx);
sumf--;
maxf--;
}
}
if (sumf!=0||IMF==-1) {return -1;}
//string ans=makestring(maxx);
//cout<<ans<<endl;
if (maxx==0){
return judge(jud,maxx,0);
}else{
return judge(jud,maxx,1);
}
}
int read()
{
int ans=0,flag=1;
char ch=getchar();
while( (ch>'9' || ch<'0') && ch!='-' ) ch=getchar();
if(ch=='-') flag=-1,ch=getchar();
while(ch>='0' && ch<='9') ans=ans*10+ch-'0',ch=getchar();
return ans*flag;
}
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
int T;
cin>>T;
while(T--){
int g=solve();
if (g==0){
cout<<"No"<<endl;
}else if (g==1){
cout<<"Yes"<<endl;
}else{
cout<<"ERR"<<endl;
}
}
return 0;
}
这边Dev上自测是能过第一个数据的...评测姬给的全部RE,返回的是代Received signal 11