#include <bits/stdc++.h>
using namespace std;
 
#define TASK "BOARDGAME"
#define all(x) (x).begin(), (x).end()
 
typedef long long ll;
typedef pair<int, int> ii;
 
const int MAX_M = 2e5;
const int MAX_N = 2e5;
const int MAX_Q = 10;
const int MOD = (int)1e9 + 7;
 
template <class X, class Y>
bool maximize(X& x, const Y& y) {
    if (x >= y) return false;
    x = y;
    return true;
};
template <class X, class Y>
bool minimize(X& x, const Y& y) {
    if (x <= y) return false;
    x = y;
    return true;
};
 
int m, n, q;
string queries[MAX_Q + 5];
string a[MAX_M + 5];
 
namespace SUBTASK_1 {
    const int M = MAX_M;
    const int N = 5e6;
 
    int z[N + 5];
 
    bool checkSubtask() {
        return 1LL * m * n < m + n;
    };
 
    void calcZFunction(const string& s) {
        z[0] = 0;
        int n = s.size();
        for (int i = 1, l = 0, r = 0; i < n; i++) {
            if (i < r) {
                z[i] = min(z[i - l], r - i);
            };
 
            while (i + z[i] < n && s[z[i]] == s[i + z[i]]) z[i]++;
 
            if (i + z[i] > r) {
                l = i;
                r = i + z[i];
            };
        };
    };
 
    void Solve() {
        string board;
        for (int i = 1; i <= m; i++)
            for (int j = 1; j <= n; j++) board += a[i][j];
 
        for (int i = 1; i <= q; i++) {
            string period;
            for (int k = 0; k < m * n; k++) {
                period += queries[i][k % queries[i].size()];
            };
 
            string st = period + '#' + board;
            calcZFunction(st);
 
            int res = 0;
            for (int j = m * n + 1; j < st.size(); j++) {
                int k = z[j];
                int len = (k / queries[i].size()) * queries[i].size();
                maximize(res, len);
            };
 
            string boardRev = board;
            reverse(all(boardRev));
 
            string stRev = period + '#' + boardRev;
            calcZFunction(stRev);
 
            for (int j = m * n + 1; j < stRev.size(); j++) {
                int k = z[j];
                int len = (k / queries[i].size()) * queries[i].size();
                maximize(res, len);
            };
 
            cout << res << ' ';
        };
 
        cout << '\n';
    };
};  // namespace SUBTASK_1
 
void solve() {
    cin >> m >> n >> q;
    for (int i = 1; i <= m; i++) {
        cin >> a[i];
        a[i] = " " + a[i];
    };
 
    for (int i = 1; i <= q; i++) cin >> queries[i];
 
    SUBTASK_1::Solve();
};
 
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    if (fopen(TASK ".INP", "r")) {
        freopen(TASK ".INP", "r", stdin);
        freopen(TASK ".OUT", "w", stdout);
    };
 
    int t;
    cin >> t;
    while (t--) solve();
};
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIFRBU0sgIkJPQVJER0FNRSIKI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gaWk7Cgpjb25zdCBpbnQgTUFYX00gPSAyZTU7CmNvbnN0IGludCBNQVhfTiA9IDJlNTsKY29uc3QgaW50IE1BWF9RID0gMTA7CmNvbnN0IGludCBNT0QgPSAoaW50KTFlOSArIDc7Cgp0ZW1wbGF0ZSA8Y2xhc3MgWCwgY2xhc3MgWT4KYm9vbCBtYXhpbWl6ZShYJiB4LCBjb25zdCBZJiB5KSB7CiAgICBpZiAoeCA+PSB5KSByZXR1cm4gZmFsc2U7CiAgICB4ID0geTsKICAgIHJldHVybiB0cnVlOwp9Owp0ZW1wbGF0ZSA8Y2xhc3MgWCwgY2xhc3MgWT4KYm9vbCBtaW5pbWl6ZShYJiB4LCBjb25zdCBZJiB5KSB7CiAgICBpZiAoeCA8PSB5KSByZXR1cm4gZmFsc2U7CiAgICB4ID0geTsKICAgIHJldHVybiB0cnVlOwp9OwoKaW50IG0sIG4sIHE7CnN0cmluZyBxdWVyaWVzW01BWF9RICsgNV07CnN0cmluZyBhW01BWF9NICsgNV07CgpuYW1lc3BhY2UgU1VCVEFTS18xIHsKICAgIGNvbnN0IGludCBNID0gTUFYX007CiAgICBjb25zdCBpbnQgTiA9IDVlNjsKCiAgICBpbnQgeltOICsgNV07CgogICAgYm9vbCBjaGVja1N1YnRhc2soKSB7CiAgICAgICAgcmV0dXJuIDFMTCAqIG0gKiBuIDwgbSArIG47CiAgICB9OwoKICAgIHZvaWQgY2FsY1pGdW5jdGlvbihjb25zdCBzdHJpbmcmIHMpIHsKICAgICAgICB6WzBdID0gMDsKICAgICAgICBpbnQgbiA9IHMuc2l6ZSgpOwogICAgICAgIGZvciAoaW50IGkgPSAxLCBsID0gMCwgciA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgaWYgKGkgPCByKSB7CiAgICAgICAgICAgICAgICB6W2ldID0gbWluKHpbaSAtIGxdLCByIC0gaSk7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICB3aGlsZSAoaSArIHpbaV0gPCBuICYmIHNbeltpXV0gPT0gc1tpICsgeltpXV0pIHpbaV0rKzsKCiAgICAgICAgICAgIGlmIChpICsgeltpXSA+IHIpIHsKICAgICAgICAgICAgICAgIGwgPSBpOwogICAgICAgICAgICAgICAgciA9IGkgKyB6W2ldOwogICAgICAgICAgICB9OwogICAgICAgIH07CiAgICB9OwoKICAgIHZvaWQgU29sdmUoKSB7CiAgICAgICAgc3RyaW5nIGJvYXJkOwogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKykKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbjsgaisrKSBib2FyZCArPSBhW2ldW2pdOwoKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBxOyBpKyspIHsKICAgICAgICAgICAgc3RyaW5nIHBlcmlvZDsKICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBtICogbjsgaysrKSB7CiAgICAgICAgICAgICAgICBwZXJpb2QgKz0gcXVlcmllc1tpXVtrICUgcXVlcmllc1tpXS5zaXplKCldOwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgc3RyaW5nIHN0ID0gcGVyaW9kICsgJyMnICsgYm9hcmQ7CiAgICAgICAgICAgIGNhbGNaRnVuY3Rpb24oc3QpOwoKICAgICAgICAgICAgaW50IHJlcyA9IDA7CiAgICAgICAgICAgIGZvciAoaW50IGogPSBtICogbiArIDE7IGogPCBzdC5zaXplKCk7IGorKykgewogICAgICAgICAgICAgICAgaW50IGsgPSB6W2pdOwogICAgICAgICAgICAgICAgaW50IGxlbiA9IChrIC8gcXVlcmllc1tpXS5zaXplKCkpICogcXVlcmllc1tpXS5zaXplKCk7CiAgICAgICAgICAgICAgICBtYXhpbWl6ZShyZXMsIGxlbik7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBzdHJpbmcgYm9hcmRSZXYgPSBib2FyZDsKICAgICAgICAgICAgcmV2ZXJzZShhbGwoYm9hcmRSZXYpKTsKCiAgICAgICAgICAgIHN0cmluZyBzdFJldiA9IHBlcmlvZCArICcjJyArIGJvYXJkUmV2OwogICAgICAgICAgICBjYWxjWkZ1bmN0aW9uKHN0UmV2KTsKCiAgICAgICAgICAgIGZvciAoaW50IGogPSBtICogbiArIDE7IGogPCBzdFJldi5zaXplKCk7IGorKykgewogICAgICAgICAgICAgICAgaW50IGsgPSB6W2pdOwogICAgICAgICAgICAgICAgaW50IGxlbiA9IChrIC8gcXVlcmllc1tpXS5zaXplKCkpICogcXVlcmllc1tpXS5zaXplKCk7CiAgICAgICAgICAgICAgICBtYXhpbWl6ZShyZXMsIGxlbik7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBjb3V0IDw8IHJlcyA8PCAnICc7CiAgICAgICAgfTsKCiAgICAgICAgY291dCA8PCAnXG4nOwogICAgfTsKfTsgIC8vIG5hbWVzcGFjZSBTVUJUQVNLXzEKCnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbSA+PiBuID4+IHE7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyBpKyspIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBhW2ldID0gIiAiICsgYVtpXTsKICAgIH07CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gcTsgaSsrKSBjaW4gPj4gcXVlcmllc1tpXTsKCiAgICBTVUJUQVNLXzE6OlNvbHZlKCk7Cn07CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgaWYgKGZvcGVuKFRBU0sgIi5JTlAiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbihUQVNLICIuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihUQVNLICIuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfTsKCiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgc29sdmUoKTsKfTs=