#include <bits/stdc++.h> // NeOWami
using namespace std;
#define ft first
#define sc second
#define int long long
using DHASH = pair<unsigned long long, int>;
const int MOD = 1e9 + 7;
DHASH operator + (const DHASH &a, const DHASH &b) {return {a.ft + b.ft, (a.sc + b.sc) % MOD};}
DHASH operator - (const DHASH &a, const DHASH &b) {return {a.ft - b.ft, (a.sc - b.sc + MOD) % MOD};}
DHASH operator * (const DHASH &a, const DHASH &b) {return {a.ft * b.ft, a.sc * b.sc % MOD};}
DHASH DH(int x) {return {x, x % MOD};}
const int inf = 1e9 + 7;
const int N = 1e4 + 5;
const int T = 2e2 + 5, K = 13 + 5;
const DHASH BASE = DH(31);
const int MSK = (1 << 13);
string s;
DHASH S[N], R[N], POW[N];
int n, t;
int k[T], l[T][K];
int dp[MSK + 100];
DHASH getDHASH(int l, int r) {return S[r] - S[l - 1] * POW[r - l + 1];}
DHASH getDHASHR(int l, int r) {return R[l] - R[r + 1] * POW[r - l + 1];}
bool isPalin(int l, int r) {return getDHASH(l, r) == getDHASHR(l, r);}
vector<int> a;
int ID[N];
void compress() {
for (int i = 1; i <= t; i++) {
for (int j = 1; j <= k[i]; j++) a.push_back(l[i][j]);
}
sort(a.begin(), a.end());
a.resize(distance(a.begin(), unique(a.begin(), a.end())));
for (int i = 0; i < a.size(); i++) ID[a[i]] = i;
}
const int MAXSZ = T * K;
int nxt[MAXSZ][N];
void init() {
for (int len: a) {
int cur = inf;
for (int i = n; i >= 1; i--) {
if (i + len - 1<= n && isPalin(i, i + len - 1)) cur = i;
nxt[ID[len]][i] = cur;
}
}
}
signed main() {
cin.tie(NULL)->sync_with_stdio(false);
if(ifstream("Input.inp")) {
freopen("Input.inp", "r", stdin);
freopen("Output.out", "w", stdout);
}
cin >> s >> t;
for (int i =1; i <= t; i++) {
cin >> k[i];
for (int j = 1; j <= k[i]; j++) cin >> l[i][j];
}
n = s.size(); s = ' ' + s;
POW[0] = DH(1);
for (int i = 1; i <= n; i++) POW[i] = POW[i - 1] * BASE;
for (int i = 1; i <= n; i++) S[i] = S[i - 1] * BASE + DH(s[i] - 'a' + 1);
for (int i = n; i >= 1; i--) R[i] = R[i + 1] * BASE + DH(s[i] - 'a' + 1);
compress();
init();
for (int o = 1; o <= t; o++) {
int sz = k[o];
int fullmsk = (1 << sz) - 1;
fill(dp, dp + (1 << sz), inf);
dp[0] = 0;
for (int msk = 0; msk <= fullmsk; msk++) if (dp[msk] <= n) {
int curEnd = dp[msk];
if (curEnd == n) continue;
for (int i = 1; i <= sz; i++) if (!(msk >> (i - 1) & 1)) {
int len = l[o][i];
int start = nxt[ID[len]][curEnd + 1];
if (start <= n) {
int nmsk = msk | (1 << (i - 1));
dp[nmsk] = min(dp[nmsk], start + len - 1);
}
}
}
cout << (dp[fullmsk] <= n ? "YES" : "NO") << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IC8vIE5lT1dhbWkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZnQgZmlyc3QKI2RlZmluZSBzYyBzZWNvbmQKI2RlZmluZSBpbnQgbG9uZyBsb25nCnVzaW5nIERIQVNIID0gcGFpcjx1bnNpZ25lZCBsb25nIGxvbmcsIGludD47CmNvbnN0IGludCBNT0QgPSAxZTkgKyA3OwoKREhBU0ggb3BlcmF0b3IgKyAoY29uc3QgREhBU0ggJmEsIGNvbnN0IERIQVNIICZiKSB7cmV0dXJuIHthLmZ0ICsgYi5mdCwgKGEuc2MgKyBiLnNjKSAlIE1PRH07fQpESEFTSCBvcGVyYXRvciAtIChjb25zdCBESEFTSCAmYSwgY29uc3QgREhBU0ggJmIpIHtyZXR1cm4ge2EuZnQgLSBiLmZ0LCAoYS5zYyAtIGIuc2MgKyBNT0QpICUgTU9EfTt9CkRIQVNIIG9wZXJhdG9yICogKGNvbnN0IERIQVNIICZhLCBjb25zdCBESEFTSCAmYikge3JldHVybiB7YS5mdCAqIGIuZnQsIGEuc2MgKiBiLnNjICUgTU9EfTt9CkRIQVNIIERIKGludCB4KSB7cmV0dXJuIHt4LCB4ICUgTU9EfTt9Cgpjb25zdCBpbnQgaW5mID0gMWU5ICsgNzsKY29uc3QgaW50IE4gPSAxZTQgKyA1Owpjb25zdCBpbnQgVCA9IDJlMiArIDUsIEsgPSAxMyArIDU7CmNvbnN0IERIQVNIIEJBU0UgPSBESCgzMSk7CmNvbnN0IGludCBNU0sgPSAoMSA8PCAxMyk7CgpzdHJpbmcgczsKREhBU0ggU1tOXSwgUltOXSwgUE9XW05dOwppbnQgbiwgdDsKaW50IGtbVF0sIGxbVF1bS107CmludCBkcFtNU0sgKyAxMDBdOwoKCkRIQVNIIGdldERIQVNIKGludCBsLCBpbnQgcikge3JldHVybiBTW3JdIC0gU1tsIC0gMV0gKiBQT1dbciAtIGwgKyAxXTt9CkRIQVNIIGdldERIQVNIUihpbnQgbCwgaW50IHIpIHtyZXR1cm4gUltsXSAtIFJbciArIDFdICogUE9XW3IgLSBsICsgMV07fQpib29sIGlzUGFsaW4oaW50IGwsIGludCByKSB7cmV0dXJuIGdldERIQVNIKGwsIHIpID09IGdldERIQVNIUihsLCByKTt9Cgp2ZWN0b3I8aW50PiBhOwppbnQgSURbTl07CnZvaWQgY29tcHJlc3MoKSB7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSB0OyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8PSBrW2ldOyBqKyspIGEucHVzaF9iYWNrKGxbaV1bal0pOwogICAgfQogICAgc29ydChhLmJlZ2luKCksIGEuZW5kKCkpOwogICAgYS5yZXNpemUoZGlzdGFuY2UoYS5iZWdpbigpLCB1bmlxdWUoYS5iZWdpbigpLCBhLmVuZCgpKSkpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLnNpemUoKTsgaSsrKSBJRFthW2ldXSA9IGk7Cn0KY29uc3QgaW50IE1BWFNaID0gVCAqIEs7CmludCBueHRbTUFYU1pdW05dOwoKdm9pZCBpbml0KCkgewogICAgZm9yIChpbnQgbGVuOiBhKSB7CiAgICAgICAgaW50IGN1ciA9IGluZjsKICAgICAgICBmb3IgKGludCBpID0gbjsgaSA+PSAxOyBpLS0pIHsKICAgICAgICAgICAgaWYgKGkgKyBsZW4gLSAxPD0gbiAmJiBpc1BhbGluKGksIGkgKyBsZW4gLSAxKSkgY3VyID0gaTsKICAgICAgICAgICAgbnh0W0lEW2xlbl1dW2ldID0gY3VyOwogICAgICAgIH0KICAgIH0KfQpzaWduZWQgbWFpbigpIHsKICAgIGNpbi50aWUoTlVMTCktPnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBpZihpZnN0cmVhbSgiSW5wdXQuaW5wIikpIHsKICAgICAgICBmcmVvcGVuKCJJbnB1dC5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJPdXRwdXQub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQogICAgY2luID4+IHMgPj4gdDsKICAgIGZvciAoaW50IGkgPTE7IGkgPD0gdDsgaSsrKSB7CiAgICAgICAgY2luID4+IGtbaV07CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0ga1tpXTsgaisrKSBjaW4gPj4gbFtpXVtqXTsKICAgIH0KICAgIAogICAgbiA9IHMuc2l6ZSgpOyBzID0gJyAnICsgczsKICAgIFBPV1swXSA9IERIKDEpOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBQT1dbaV0gPSBQT1dbaSAtIDFdICogQkFTRTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgU1tpXSA9IFNbaSAtIDFdICogQkFTRSArIERIKHNbaV0gLSAnYScgKyAxKTsKICAgIGZvciAoaW50IGkgPSBuOyBpID49IDE7IGktLSkgUltpXSA9IFJbaSArIDFdICogQkFTRSArIERIKHNbaV0gLSAnYScgKyAxKTsKICAgIAogICAgY29tcHJlc3MoKTsKICAgIGluaXQoKTsKCiAgICBmb3IgKGludCBvID0gMTsgbyA8PSB0OyBvKyspIHsKICAgICAgICBpbnQgc3ogPSBrW29dOyAKICAgICAgICBpbnQgZnVsbG1zayA9ICgxIDw8IHN6KSAtIDE7CiAgICAgICAgZmlsbChkcCwgZHAgKyAoMSA8PCBzeiksIGluZik7CiAgICAgICAgZHBbMF0gPSAwOwogICAgICAgIGZvciAoaW50IG1zayA9IDA7IG1zayA8PSBmdWxsbXNrOyBtc2srKykgaWYgKGRwW21za10gPD0gbikgewogICAgICAgICAgICBpbnQgY3VyRW5kID0gZHBbbXNrXTsKICAgICAgICAgICAgaWYgKGN1ckVuZCA9PSBuKSBjb250aW51ZTsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gc3o7IGkrKykgaWYgKCEobXNrID4+IChpIC0gMSkgJiAxKSkgewogICAgICAgICAgICAgICAgaW50IGxlbiA9IGxbb11baV07CiAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBueHRbSURbbGVuXV1bY3VyRW5kICsgMV07CiAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPD0gbikgewogICAgICAgICAgICAgICAgICAgIGludCBubXNrID0gbXNrIHwgKDEgPDwgKGkgLSAxKSk7CiAgICAgICAgICAgICAgICAgICAgZHBbbm1za10gPSBtaW4oZHBbbm1za10sIHN0YXJ0ICsgbGVuIC0gMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY291dCA8PCAoZHBbZnVsbG1za10gPD0gbiA/ICJZRVMiIDogIk5PIikgPDwgIlxuIjsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==