#include<bits/stdc++.h>
using namespace std;
long long t,n;
string s,k;
struct nn{
long long l,r;
}a[200005],cnt[200005];
int main(){
scanf("%lld",&t);
while(t--){`
scanf("%lld",&n);
cin>>s>>k;
long long p=0,q,h=0,f=0;
for(long long i=0;i<n;i++){
if(k[i]=='C'){
q=i-1;
if(q>p){
h++;
a[h].l=p;
a[h].r=q;
p=i+1;
if(s[i]!='C'&&k[i]=='C'){
f=1;
}
}
}
}
if(k[n]!='C'){
h++;
a[h].l=p;
a[h].r=n-1;
}
if(f==1) printf("No\n");
else{
long long w=0;
for(long long i=1;i<=h;i++){
long long aa=0,bb=0,x=0,y=0,r=0;
for(long long j=a[i].l;j<=a[i].r;j++){
if(s[j]=='A') aa++;
if(s[j]=='B') bb++;
if(k[j]=='A') x++;
if(k[j]=='B') y++;
if(s[j]=='C') r++;
}
if(aa>x||bb>y||aa+r<x||bb+r<y){
printf("No\n");
w=1;
break;
}
r=x-aa;
long long o=0,l=0;
for(long long j=a[i].l;j<=a[i].r;j++){
if(r>0&&s[j]=='C'){
r--;
o++;
cnt[o].l=j;
}
if(s[j]=='A'){
o++;
cnt[o].l=j;
}
if(k[j]=='A'){
l++;
cnt[l].r=j;
}
}
for(long long j=1;j<=o;j++){
if(cnt[j].l>cnt[j].r){
printf("No\n");
w=1;
break;
}
}
if(w==1) break;
}
if(w!=1){
printf("Yes\n");
}
}
}
return 0;
}