#include <bits/stdc++.h>
#define _ ios_base::sync_with_stdio(0);cin.tie();
#define ll long long
#define vi vector<ll>
#define pb push_back
#define pii pair<ll, ll>
#define vpii vector<pii>
#define vvi vector< vector<ll> >
#define si set<ll>
#define mi map<string, ll>
using namespace std;
ll pr = 101;
ll M = (1e9 + 9)*(1e9 + 7);
string s;
map< ll, si > hashes;
ll mod (ll a, ll b)
{
ll ret = a % b;
if(ret < 0)
ret+=b;
return ret;
}
ll has(string s, ll prev = 0, char p = 'a') {
ll len = s.size();
//cout << "hashing " << s << " with prev=" << prev << " and p=" << p << endl;
if(prev > 0) {
//cout << "got " << mod(pr*prev - (ll)pow(pr, len + 1)*p + pr*s[len-1], M) << endl;
return mod(pr*prev - (ll)pow(pr, len + 1)*p + pr*s[len-1], M);
} else {
ll h = 0;
for(ll i = 0; i < len; i++) {
h += mod(s[len-1-i]*(ll)pow(pr, i+1), M);
}
//cout << "got " << mod(h, M) << endl;
return mod(h, M);
}
}
void calc_hashes(ll len) {
//cout << "starting to hash hashes with len " << len << endl;
ll prev = 0;
ll p = 'a';
for(ll i = 0; i < s.size() - len + 1; i++) {
prev = has(s.substr(i, len), prev, p);
hashes[len].insert(prev);
p = s[i];
}
//cout << "done hashing" << endl;
}
int main() { _
cin >> s;
ll q;
cin >> q;
string t;
string buf;
for(ll i = 0; i < q; i++) {
cin >> t;
if(hashes[t.size()].size() == 0) {
calc_hashes(t.size());
}
if(hashes[t.size()].count(has(t, 0)) == 1) buf += "YES\n";
else buf += "NO\n";
}
cout << buf;
return 0;
}