#include<bits/stdc++.h>
using namespace std;
int t,xun[105];
string ch1[105],ch2[105],ch3[105];
map<string,bool> vis;
int main(){
cin>>t;
while(t--){
int n;
cin>>n;
char ch;
cin>>ch>>ch>>ch;
memset(xun,0,sizeof(xun));
vis.clear();
int cnt1=0,cnt2=0,flag=0,flag2=0;
if(ch=='1'){
char asdasasf;
cin>>asdasasf;
for(int i=1;i<=n;i++){
cin>>ch;
if(ch=='F'){
cnt1++;
cin>>ch1[cnt1]>>ch2[cnt1]>>ch3[cnt1];
if(vis[ch1[cnt1]]){
flag2=3;
}else{
vis[ch1[cnt1]]=1;
if(ch2[cnt1][0]>='0'&&ch2[cnt1][0]<='9'){
if(ch3[cnt1][0]>='0'&&ch3[cnt1][0]<='9'){
xun[cnt1]=1;
}else{
xun[cnt1]=2;
}
}else{
if(ch3[cnt1].size()<3){
xun[cnt1]=3;
}else{
xun[cnt1]=2;
}
}
}
}else{
cnt2++;
if(flag2==3){
xun[cnt1]=0;
vis[ch1[cnt1]]=0;
continue;
}
for(int i=1;i<=cnt1;i++){
if(xun[i]==3){
break;
}
if(xun[i]==2){
flag=1;
break;
}
}
if(flag&&flag2!=1){
flag2=2;
}
if(!flag&&flag!=2){
flag2=1;
}
xun[cnt1]=0;
vis[ch1[cnt1]]=0;
}
}
if(cnt1!=cnt2||flag2==3){
cout<<"ERR\n";
}else{
if(flag2==1){
cout<<"Yes\n";
}else if(flag2==2){
cout<<"No\n";
}
}
}else{
int x;
cin>>ch>>x>>ch;
for(int i=1;i<=n;i++){
cin>>ch;
if(ch=='F'){
cnt1++;
cin>>ch1[cnt1]>>ch2[cnt1]>>ch3[cnt1];
if(vis[ch1[cnt1]]&&flag2!=3){
flag2=3;
}else{
vis[ch1[cnt1]]=1;
if(ch2[cnt1][0]>='0'&&ch2[cnt1][0]<='9'){
if(ch3[cnt1][0]>='0'&&ch3[cnt1][0]<='9'){
xun[cnt1]=1;
}else{
xun[cnt1]=2;
}
}else{
if(ch3[cnt1].size()<3){
xun[cnt1]=3;
}else{
xun[cnt1]=2;
}
}
}
}else{
cnt2++;
if(flag2==3){
xun[cnt1]=0;
vis[ch1[cnt1]]=0;
continue;
}
int sum=0;
for(int i=1;i<=cnt1;i++){
if(xun[i]==3){
break;
}
if(xun[i]==2){
sum++;
}
}
if(sum==x&&flag2!=2){
flag2=1;
}
if(sum!=x&&flag2!=1){
flag2=2;
}
xun[cnt1]=0;
vis[ch1[cnt1]]=0;
}
}
if(cnt1!=cnt2||flag2==3){
cout<<"ERR\n";
}else{
if(flag2==1){
cout<<"Yes\n";
}else{
cout<<"No\n";
}
}
}
}
return 0;
}