#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
const int MX = 500010, ALPH = 26, INF = 1e9;
int b[MX][ALPH], key = 1;
int s[MX];
void addWord(string a) {
int cur = 0;
for (int i = 0; i < a.size(); i++) {
int next = b[cur][(int)a[i]-'a'];
if (next == INF) {
b[cur][(int)a[i]-'a'] = key;
s[key] = (int)a.size();
cur = key++;
}
else {
s[next] = min(s[next], (int)a.size());
cur = next;
}
}
}
int main() {
int n; cin >> n;
for (int i = 0; i < MX; i++) for (int j = 0; j < ALPH; j++) {
b[i][j] = INF;
s[i] = INF;
}
int minLength = INF;
for (int i = 0; i < n; i++) {
string a; cin >> a;
addWord(a);
minLength = min(minLength, (int)a.size());
}
int q; cin >> q;
for (int i = 0; i < q; i++) {
string a; cin >> a;
int len = a.size(), ans = minLength+len, cur = 0;
for (int i = 0; i < a.size(); i++) {
int next = b[cur][(int)a[i]-'a'];
if (next == INF) {
break;
}
else {
cur = next;
}
ans = min(ans, len+s[cur]-2*(i+1));
}
cout << ans << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTVggPSA1MDAwMTAsIEFMUEggPSAyNiwgSU5GID0gMWU5OwppbnQgYltNWF1bQUxQSF0sIGtleSA9IDE7CmludCBzW01YXTsKIAp2b2lkIGFkZFdvcmQoc3RyaW5nIGEpIHsKCWludCBjdXIgPSAwOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBhLnNpemUoKTsgaSsrKSB7CgkJaW50IG5leHQgPSBiW2N1cl1bKGludClhW2ldLSdhJ107CgkJaWYgKG5leHQgPT0gSU5GKSB7CgkJCWJbY3VyXVsoaW50KWFbaV0tJ2EnXSA9IGtleTsKCQkJc1trZXldID0gKGludClhLnNpemUoKTsKCQkJY3VyID0ga2V5Kys7CgkJfQoJCWVsc2UgewoJCQlzW25leHRdID0gbWluKHNbbmV4dF0sIChpbnQpYS5zaXplKCkpOwoJCQljdXIgPSBuZXh0OwoJCX0KCX0KfQogCmludCBtYWluKCkgewoJaW50IG47IGNpbiA+PiBuOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBNWDsgaSsrKSBmb3IgKGludCBqID0gMDsgaiA8IEFMUEg7IGorKykgewoJCWJbaV1bal0gPSBJTkY7CgkJc1tpXSA9IElORjsKCX0KCWludCBtaW5MZW5ndGggPSBJTkY7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCXN0cmluZyBhOyBjaW4gPj4gYTsKCQlhZGRXb3JkKGEpOwoJCW1pbkxlbmd0aCA9IG1pbihtaW5MZW5ndGgsIChpbnQpYS5zaXplKCkpOwoJfQoJaW50IHE7IGNpbiA+PiBxOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBxOyBpKyspIHsKCQlzdHJpbmcgYTsgY2luID4+IGE7CgkJaW50IGxlbiA9IGEuc2l6ZSgpLCBhbnMgPSBtaW5MZW5ndGgrbGVuLCBjdXIgPSAwOwoJCWZvciAoaW50IGkgPSAwOyBpIDwgYS5zaXplKCk7IGkrKykgewoJCQlpbnQgbmV4dCA9IGJbY3VyXVsoaW50KWFbaV0tJ2EnXTsKCQkJaWYgKG5leHQgPT0gSU5GKSB7CgkJCQlicmVhazsKCQkJfQoJCQllbHNlIHsKCQkJCWN1ciA9IG5leHQ7CgkJCX0KCQkJYW5zID0gbWluKGFucywgbGVuK3NbY3VyXS0yKihpKzEpKTsKCQl9CgkJY291dCA8PCBhbnMgPDwgJ1xuJzsKCX0KCXJldHVybiAwOwp9IA==