#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <sstream>
#include <map>
#include <list>
#include <queue>
#include <set>
#include <algorithm>
#include <climits>
#include <cmath>
#include <cassert>
#include <stack>
#include <bitset>
#include <tr1/unordered_map>
#include <tr1/unordered_set>
#define mp make_pair
#define ll long long
#define ull unsigned long long
#define null NULL
const int INF=(INT_MAX>>2);
using namespace std;
string s;
struct node;
struct node {
char s;
map<int,node*> e;
int pn;
node *f;
node(char c){
s=c;
f=null;
pn=-1;
}
};
node *root;
void bfs() {
queue<node*> q;
for(map<int,node*>::iterator i=root->e.begin();i!=root->e.end();++i) {
i->second->f=root;
q.push(i->second);
}
for(;!q.empty();) {
node *u=q.front();
q.pop();
for(map<int,node*>::iterator v=u->e.begin();v!=u->e.end();++v) {
for(v->second->f=u->f;;) {
if(v->second->f->e.find(v->second->s)!=v->second->f->e.end()) {
v->second->f=v->second->f->e[v->second->s];
break;
} else {
if(v->second->f==root) break;
v->second->f=v->second->f->f;
}
}
q.push(v->second);
}
}
}
int q;
bool pf[1000];
int h[1000];
void search() {
memset(pf,0,sizeof(pf));
node *i=root;
for(string::iterator c=s.begin();c!=s.end();) {
if(i->e.find(*c)!=i->e.end()) {
i=i->e[*c];
for(node*k=i;k;k=k->f) {
if(k->pn!=-1) {
pf[k->pn]=true;
}
}
++c;
} else {
for(;i!=root && (i->e.find(*c)==i->e.end());i=i->f);
if(i->e.find(*c)!=i->e.end()) {
continue;
} else {
++c;
}
}
}
for(int i=0;i<q;++i) printf("%c\n",pf[h[i]]?'y':'n');
}
int main() {
// freopen("me.txt","r",stdin);
int t;
cin>>t;
for(string p;t--;) {
root=new node(0);
cin>>s;
cin>>q;
for(int i=0;i<q;++i) {
cin>>p;
node *k=root;
h[i]=i;
for(int j=0;j<p.size();++j) {
if(k->e.find(p[j])!=k->e.end()) {
k=k->e[p[j]];
} else {
k=(k->e[p[j]]=new node(p[j]));
}
if(j==p.size()-1) {
if(k->pn==-1){
k->pn=i;
} else {
h[i]=k->pn;
}
}
}
}
bfs();
search();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjbGltaXRzPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxjYXNzZXJ0PgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDx0cjEvdW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPHRyMS91bm9yZGVyZWRfc2V0PgoKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgbnVsbCBOVUxMCgpjb25zdCBpbnQgSU5GPShJTlRfTUFYPj4yKTsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJpbmcgczsKCnN0cnVjdCBub2RlOwpzdHJ1Y3Qgbm9kZSB7CiAgICBjaGFyIHM7CiAgICBtYXA8aW50LG5vZGUqPiBlOwogICAgaW50IHBuOwogICAgbm9kZSAqZjsKICAgIG5vZGUoY2hhciBjKXsKICAgICAgICBzPWM7CiAgICAgICAgZj1udWxsOwogICAgICAgIHBuPS0xOwogICAgfQp9Owpub2RlICpyb290Owp2b2lkIGJmcygpIHsKICAgIHF1ZXVlPG5vZGUqPiBxOwogICAgZm9yKG1hcDxpbnQsbm9kZSo+OjppdGVyYXRvciBpPXJvb3QtPmUuYmVnaW4oKTtpIT1yb290LT5lLmVuZCgpOysraSkgewogICAgICAgIGktPnNlY29uZC0+Zj1yb290OwogICAgICAgIHEucHVzaChpLT5zZWNvbmQpOwogICAgfQogICAgZm9yKDshcS5lbXB0eSgpOykgewogICAgICAgIG5vZGUgKnU9cS5mcm9udCgpOwogICAgICAgIHEucG9wKCk7CiAgICAgICAgZm9yKG1hcDxpbnQsbm9kZSo+OjppdGVyYXRvciB2PXUtPmUuYmVnaW4oKTt2IT11LT5lLmVuZCgpOysrdikgewogICAgICAgICAgICBmb3Iodi0+c2Vjb25kLT5mPXUtPmY7OykgewogICAgICAgICAgICAgICAgaWYodi0+c2Vjb25kLT5mLT5lLmZpbmQodi0+c2Vjb25kLT5zKSE9di0+c2Vjb25kLT5mLT5lLmVuZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgdi0+c2Vjb25kLT5mPXYtPnNlY29uZC0+Zi0+ZVt2LT5zZWNvbmQtPnNdOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZih2LT5zZWNvbmQtPmY9PXJvb3QpIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIHYtPnNlY29uZC0+Zj12LT5zZWNvbmQtPmYtPmY7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcS5wdXNoKHYtPnNlY29uZCk7CiAgICAgICAgfQogICAgfQp9CmludCBxOwpib29sIHBmWzEwMDBdOwppbnQgaFsxMDAwXTsKdm9pZCBzZWFyY2goKSB7CiAgICBtZW1zZXQocGYsMCxzaXplb2YocGYpKTsKICAgIG5vZGUgKmk9cm9vdDsKICAgIGZvcihzdHJpbmc6Oml0ZXJhdG9yIGM9cy5iZWdpbigpO2MhPXMuZW5kKCk7KSB7CiAgICAgICAgaWYoaS0+ZS5maW5kKCpjKSE9aS0+ZS5lbmQoKSkgewogICAgICAgICAgICBpPWktPmVbKmNdOwogICAgICAgICAgICBmb3Iobm9kZSprPWk7aztrPWstPmYpIHsKICAgICAgICAgICAgICAgIGlmKGstPnBuIT0tMSkgewogICAgICAgICAgICAgICAgICAgIHBmW2stPnBuXT10cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICsrYzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmb3IoO2khPXJvb3QgJiYgKGktPmUuZmluZCgqYyk9PWktPmUuZW5kKCkpO2k9aS0+Zik7CiAgICAgICAgICAgIGlmKGktPmUuZmluZCgqYykhPWktPmUuZW5kKCkpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgKytjOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBpPTA7aTxxOysraSkgcHJpbnRmKCIlY1xuIixwZltoW2ldXT8neSc6J24nKTsKfQoKaW50IG1haW4oKSB7Ci8vICAgIGZyZW9wZW4oIm1lLnR4dCIsInIiLHN0ZGluKTsKICAgIGludCB0OwogICAgY2luPj50OwogICAgZm9yKHN0cmluZyBwO3QtLTspIHsKICAgICAgICByb290PW5ldyBub2RlKDApOwogICAgICAgIGNpbj4+czsKICAgICAgICBjaW4+PnE7CiAgICAgICAgZm9yKGludCBpPTA7aTxxOysraSkgewogICAgICAgICAgICBjaW4+PnA7CiAgICAgICAgICAgIG5vZGUgKms9cm9vdDsKICAgICAgICAgICAgaFtpXT1pOwogICAgICAgICAgICBmb3IoaW50IGo9MDtqPHAuc2l6ZSgpOysraikgewogICAgICAgICAgICAgICAgaWYoay0+ZS5maW5kKHBbal0pIT1rLT5lLmVuZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgaz1rLT5lW3Bbal1dOwogICAgICAgICAgICAgICAgfSAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaz0oay0+ZVtwW2pdXT1uZXcgbm9kZShwW2pdKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZihqPT1wLnNpemUoKS0xKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoay0+cG49PS0xKXsKICAgICAgICAgICAgICAgICAgICAgICAgay0+cG49aTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBoW2ldPWstPnBuOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBiZnMoKTsKICAgICAgICBzZWFyY2goKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==