#include<stdio.h>
#include<string.h>
# define MAXSTRLEN 100000
typedef unsigned char SString [MAXSTRLEN+1];
int Nextval[100000];
void get_Nextval(SString T,int Nextval[ ])
{
int i=1,j=0;
Nextval[1]=0;
while(i<T[0])
{
if(j==0||T[i]==T[j]){
++i;++j;
if(T[i]!=T[j])Nextval[i]=j;
else Nextval[i]=Nextval[j];
}//if
else j=Nextval[j];
}//while
}//get_nextval
int KMP(SString S,SString T)
{
int i=1,j=1;
while(i<=S[0]&&j<=T[0])
{
if(j==0||S[i]==T[j]){++i;++j;}
else j=Nextval[j]; //回溯j指针
}
if(j>T[0]) return i-T[0];
else return 0;
}
void init(SString T,char t[ ])
{
int x,i;
x=strlen(t);
for(i=1;i<=x;i++)
{
T[i]=t[i-1];
}
T[0]=x;
}
int main()
{
SString T,S;
char t[100000],s[100000];
int n,x,y,i,j,m;
while(scanf("%s",s)!=EOF){
getchar();
init(S,s);//初始化T数组
scanf("%d",&n);
for(m=0;m<n;m++)
{ scanf("%s",t);getchar();
init(T,t); //初始化T数组
get_Nextval(T,Nextval);//获取nextval数组
j=KMP(S,T);
if(j) printf("yes\n");
else printf("no\n");
}//for
}//while
return 0;
}