//#include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <array>
using namespace std;
#define FOR(i,a,b) for (int i = (a), _b = (b); i <= (_b); ++i)
#define FORD(i,a,b) for (int i = (a), _b = (b); i >= (_b); --i)
//--Compare------------------------------------------------------------------------------------
template<class X, class Y>
inline bool maximize(X &x, const Y &y){ return (x < y) ? x = y, 1 : 0; }
template<class X, class Y>
inline bool minimize(X &x, const Y &y){ return (x > y) ? x = y, 1 : 0; }
//--Process------------------------------------------------------------------------------------
typedef pair <int, int> pii;
#define fi first
#define se second
constexpr int MAXN = 2e5 + 10;
constexpr pii INF = {1e9, 1e9};
int n, m, q;
string P[MAXN >> 1];
int idx[MAXN];
vector <array<int, 26>> nxt[MAXN >> 1];
int sz[MAXN], nxtAll[26][MAXN];
pii dp[2][3005];
void init(void)
{
static array <int, 26> INF_AR;
FOR(c, 0, 25) INF_AR[c] = (int) (1e9);
// nxt[i][j][c] la vi tri k nho nhat > j sao cho P[i][k] = c (1 <= i <= n)
// (x, y)
FORD(i, n, 0)
{
sz[i] = P[i].size();
P[i] = '#' + P[i] + '#';
nxt[i].assign(sz[i] + 2, INF_AR);
FOR(c, 0, 25)
{
FORD(j, sz[i], 0)
{
if (P[i][j + 1] - 'a' == c) nxt[i][j][c] = j + 1;
else nxt[i][j][c] = nxt[i][j + 1][c];
}
}
}
FOR(c, 0, 25) nxtAll[c][m] = m + 2;
FORD(i, m - 1, 0)
{
FOR(c, 0, 25)
{
if (nxt[idx[i + 1]][0][c] <= sz[idx[i + 1]])
nxtAll[c][i] = i + 1;
else
nxtAll[c][i] = nxtAll[c][i + 1];
}
}
}
void solve(void)
{
while (q--)
{
string S; cin >> S;
int szS = S.size();
S = '#' + S + '#';
dp[0][0] = {0, 0};
dp[0][1] = dp[0][2] = INF;
int res = 0;
FOR(i, 1, szS)
{
FOR(len, 0, i + 1) dp[i & 1][len] = INF;
FOR(len, 0, i)
{
minimize(dp[i & 1][len], dp[(i - 1) & 1][len]);
int x = dp[(i - 1) & 1][len].fi, k = dp[(i - 1) & 1][len].se;
if (x < 0 || x > m) continue;
if (x != 0 && nxt[idx[x]][k][S[i] - 'a'] <= sz[idx[x]])
minimize(dp[i & 1][len + 1], pii{x, nxt[idx[x]][k][S[i] - 'a']});
if (x == 0 || nxt[idx[x]][k][S[i] - 'a'] > sz[idx[x]])
{
x = nxtAll[S[i] - 'a'][x];
if (x <= m)
minimize(dp[i & 1][len + 1], pii{x, nxt[idx[x]][0][S[i] - 'a']});
}
if (i == szS && dp[i & 1][len].fi <= m) res = len;
if (i == szS && dp[i & 1][len + 1].fi <= m) res = len + 1;
}
}
cout << res << '\n';
}
cout << '\n';
}
signed main(void)
{
cin.tie(nullptr)->sync_with_stdio(false);
#define task "ojfactory"
if (fopen(task".INP", "r"))
{
freopen(task".INP", "r", stdin);
freopen(task".OUT", "w", stdout);
}
//--OpenFile-------------------------------------------------------------------------------
cin >> n >> m >> q;
FOR(i, 1, n) cin >> P[i];
FOR(i, 1, m) cin >> idx[i];
P[0] = "";
init();
solve();
return 0;
}
Ly8jaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFycmF5PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgRk9SKGksYSxiKSAgICAgIGZvciAoaW50IGkgPSAoYSksIF9iID0gKGIpOyBpIDw9IChfYik7ICsraSkKI2RlZmluZSBGT1JEKGksYSxiKSAgICAgZm9yIChpbnQgaSA9IChhKSwgX2IgPSAoYik7IGkgPj0gKF9iKTsgLS1pKQoKLy8tLUNvbXBhcmUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KdGVtcGxhdGU8Y2xhc3MgWCwgY2xhc3MgWT4KICAgIGlubGluZSBib29sIG1heGltaXplKFggJngsIGNvbnN0IFkgJnkpeyByZXR1cm4gKHggPCB5KSA/IHggPSB5LCAxIDogMDsgfQoKdGVtcGxhdGU8Y2xhc3MgWCwgY2xhc3MgWT4KICAgIGlubGluZSBib29sIG1pbmltaXplKFggJngsIGNvbnN0IFkgJnkpeyByZXR1cm4gKHggPiB5KSA/IHggPSB5LCAxIDogMDsgfQoKLy8tLVByb2Nlc3MtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCnR5cGVkZWYgcGFpciA8aW50LCBpbnQ+ICAgcGlpOwojZGVmaW5lIGZpICAgICAgICAgICAgICBmaXJzdAojZGVmaW5lIHNlICAgICAgICAgICAgICBzZWNvbmQKCmNvbnN0ZXhwciBpbnQgTUFYTiA9IDJlNSArIDEwOwpjb25zdGV4cHIgcGlpIElORiA9IHsxZTksIDFlOX07CgppbnQgbiwgbSwgcTsKc3RyaW5nIFBbTUFYTiA+PiAxXTsKaW50IGlkeFtNQVhOXTsKCnZlY3RvciA8YXJyYXk8aW50LCAyNj4+IG54dFtNQVhOID4+IDFdOwppbnQgc3pbTUFYTl0sIG54dEFsbFsyNl1bTUFYTl07CnBpaSBkcFsyXVszMDA1XTsKCnZvaWQgaW5pdCh2b2lkKQp7CiAgICBzdGF0aWMgYXJyYXkgPGludCwgMjY+IElORl9BUjsKICAgIEZPUihjLCAwLCAyNSkgSU5GX0FSW2NdID0gKGludCkgKDFlOSk7CgogICAgLy8gbnh0W2ldW2pdW2NdIGxhIHZpIHRyaSBrIG5obyBuaGF0ID4gaiBzYW8gY2hvIFBbaV1ba10gPSBjICgxIDw9IGkgPD0gbikKICAgIC8vICh4LCB5KQogICAgRk9SRChpLCBuLCAwKQogICAgewogICAgICAgIHN6W2ldID0gUFtpXS5zaXplKCk7CiAgICAgICAgUFtpXSA9ICcjJyArIFBbaV0gKyAnIyc7CgogICAgICAgIG54dFtpXS5hc3NpZ24oc3pbaV0gKyAyLCBJTkZfQVIpOwoKICAgICAgICBGT1IoYywgMCwgMjUpCiAgICAgICAgewogICAgICAgICAgICBGT1JEKGosIHN6W2ldLCAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoUFtpXVtqICsgMV0gLSAnYScgPT0gYykgbnh0W2ldW2pdW2NdID0gaiArIDE7CiAgICAgICAgICAgICAgICBlbHNlIG54dFtpXVtqXVtjXSA9IG54dFtpXVtqICsgMV1bY107CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgRk9SKGMsIDAsIDI1KSBueHRBbGxbY11bbV0gPSBtICsgMjsKICAgIEZPUkQoaSwgbSAtIDEsIDApCiAgICB7CiAgICAgICAgRk9SKGMsIDAsIDI1KQogICAgICAgIHsKICAgICAgICAgICAgaWYgKG54dFtpZHhbaSArIDFdXVswXVtjXSA8PSBzeltpZHhbaSArIDFdXSkKICAgICAgICAgICAgICAgIG54dEFsbFtjXVtpXSA9IGkgKyAxOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBueHRBbGxbY11baV0gPSBueHRBbGxbY11baSArIDFdOwogICAgICAgIH0KICAgIH0KfQoKdm9pZCBzb2x2ZSh2b2lkKQp7CiAgICB3aGlsZSAocS0tKQogICAgewogICAgICAgIHN0cmluZyBTOyBjaW4gPj4gUzsKICAgICAgICBpbnQgc3pTID0gUy5zaXplKCk7CiAgICAgICAgUyA9ICcjJyArIFMgKyAnIyc7CgogICAgICAgIGRwWzBdWzBdID0gezAsIDB9OwogICAgICAgIGRwWzBdWzFdID0gZHBbMF1bMl0gPSBJTkY7CgogICAgICAgIGludCByZXMgPSAwOwoKICAgICAgICBGT1IoaSwgMSwgc3pTKQogICAgICAgIHsKICAgICAgICAgICAgRk9SKGxlbiwgMCwgaSArIDEpIGRwW2kgJiAxXVtsZW5dID0gSU5GOwogICAgICAgICAgICBGT1IobGVuLCAwLCBpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBtaW5pbWl6ZShkcFtpICYgMV1bbGVuXSwgZHBbKGkgLSAxKSAmIDFdW2xlbl0pOwogICAgICAgICAgICAgICAgaW50IHggPSBkcFsoaSAtIDEpICYgMV1bbGVuXS5maSwgayA9IGRwWyhpIC0gMSkgJiAxXVtsZW5dLnNlOwogICAgICAgICAgICAgICAgaWYgKHggPCAwIHx8IHggPiBtKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICBpZiAoeCAhPSAwICYmIG54dFtpZHhbeF1dW2tdW1NbaV0gLSAnYSddIDw9IHN6W2lkeFt4XV0pCiAgICAgICAgICAgICAgICAgICAgbWluaW1pemUoZHBbaSAmIDFdW2xlbiArIDFdLCBwaWl7eCwgbnh0W2lkeFt4XV1ba11bU1tpXSAtICdhJ119KTsKCiAgICAgICAgICAgICAgICBpZiAoeCA9PSAwIHx8IG54dFtpZHhbeF1dW2tdW1NbaV0gLSAnYSddID4gc3pbaWR4W3hdXSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB4ID0gbnh0QWxsW1NbaV0gLSAnYSddW3hdOwogICAgICAgICAgICAgICAgICAgIGlmICh4IDw9IG0pCiAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltaXplKGRwW2kgJiAxXVtsZW4gKyAxXSwgcGlpe3gsIG54dFtpZHhbeF1dWzBdW1NbaV0gLSAnYSddfSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGkgPT0gc3pTICYmIGRwW2kgJiAxXVtsZW5dLmZpIDw9IG0pIHJlcyA9IGxlbjsKICAgICAgICAgICAgICAgIGlmIChpID09IHN6UyAmJiBkcFtpICYgMV1bbGVuICsgMV0uZmkgPD0gbSkgcmVzID0gbGVuICsgMTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgY291dCA8PCByZXMgPDwgJ1xuJzsKICAgIH0KICAgIGNvdXQgPDwgJ1xuJzsKfQoKCnNpZ25lZCBtYWluKHZvaWQpCnsKICAgIGNpbi50aWUobnVsbHB0ciktPnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgogICAgI2RlZmluZSB0YXNrICJvamZhY3RvcnkiCiAgICBpZiAoZm9wZW4odGFzayIuSU5QIiwgInIiKSkKICAgIHsKICAgICAgIGZyZW9wZW4odGFzayIuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICBmcmVvcGVuKHRhc2siLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIC8vLS1PcGVuRmlsZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICBjaW4gPj4gbiA+PiBtID4+IHE7CiAgICBGT1IoaSwgMSwgbikgY2luID4+IFBbaV07CiAgICBGT1IoaSwgMSwgbSkgY2luID4+IGlkeFtpXTsKICAgIFBbMF0gPSAiIjsKCiAgICBpbml0KCk7CiAgICBzb2x2ZSgpOwoKICAgIHJldHVybiAwOwp9Cg==