/*
本字典树较弱 只支持插入单词 查询单词.
特殊的 bool变量w 标记此字母是不是某个单词的结束
(然而这个题并没卵用)
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 300010
#define maxm 1010
using namespace std;
char s[maxm];
struct node
{
int next[27];
bool w;
}tire[maxn];
int n,m,topt;
void Add_tire()
{
int l=strlen(s);
int now=0;
for(int i=0;i<l;i++)
{
int x=s[i]-'a'+1;
if(tire[now].next[x])
now=tire[now].next[x];
else
{
++topt;
tire[now].next[x]=topt;
now=topt;
}
}
tire[now].w=1;
}
int find()
{
int len=strlen(s);
int now=0,p=0,sum=0;
while(p<=len-1)
{
if(tire[now].next[s[p]-'a'+1])
{
now=tire[now].next[s[p]-'a'+1];
p++;
continue;
}
return 0;
}
//if(!tire[now].w)return 0;
return 1;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
scanf("%s",s);
Add_tire();
}
cin>>m;
memset(s,0,sizeof(s));
for(int i=1;i<=m;i++)
{
scanf("%s",s);
int bo=find();
if(bo)printf("YES\n");
else printf("NO\n");
}
return 0;
}