#include//??????? using namespace std; int t; int n; struct node{ int x,y; char c; }a[200010]; int cntx,cnty; int main(){ cin>>t; while(t--){ cin>>n; for(int i=1;i<=2*n;i++){ cin>>a[i].x>>a[i].y>>a[i].c; if(a[i].c=='x') cntx++; else cnty++; } if(!(cntx-cnty)){ cout<<"Yes\n"; continue; } for(int i=1;i<=2*n;i++){ for(int j=1;j<=2*n;j++){ if(i==j) continue; if(a[i].c==a[j].c && a[i].x!=INT_MAX && a[j].x!=INT_MAX){ if(a[i].c=='x'){ if(a[i].y==a[j].y){ a[i].x=INT_MAX; a[j].x=INT_MAX; } } if(a[i].c=='y'){ if(a[i].x==a[j].x){ a[i].x=INT_MAX; a[j].x=INT_MAX; } } } } } for(int i=1;i<=2*n;i++){ for(int j=1;j<=2*n;j++){ if(i==j) continue; if(a[i].c=='x' && a[j].c=='y' && a[i].x!=INT_MAX && a[j].x!=INT_MAX){ a[i].x=INT_MAX; a[j].x=INT_MAX; } } } bool f=1; for(int i=1;i<=2*n;i++){ if(a[i].x!=INT_MAX && f){ cout<<"No\n"; f=0; } } if(f) cout<<"Yes\n"; } return 0; }