#include<bits/stdc++.h>
using namespace std;
struct node{
char x[50];
}a[50];
int n;
string s;
bool f[50];
bool dfs(int qw,int cnt)
{
if(qw<s.size())
{
return false;
}
if(cnt==s.size())
{
return true;
}
for(int i=1;i<=4;i++)
{
for(int j=1;j<=6;j++)
{
if(s[cnt]==a[i].x[j]&&f[i]==false)
{
f[i]=true;
bool flg=dfs(qw-1,cnt);
flg=max(flg,dfs(qw,cnt+1));
f[i]=false;
return flg;
}
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=4;i++)
{
for(int j=1;j<=6;j++)
{
cin>>a[i].x[j];
}
}
for(int i=1;i<=n;i++)
{
cin>>s;
if(dfs(4,0)==true) cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}