#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e5+5;
const int mod = 1e9 + 7;
const int oo = 1e18+5;
typedef pair<int, int> ii;
typedef pair<int, pair<int, int>> iii;
#define fi first
#define se second
#define read(_a, n) for(int i = 1; i <= n; i++) cin >> _a[i]
#define For(i, _a, _b) for(int i = _a; i <= _b; i++)
#define fastIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define File(_x,_y) if (fopen(_x, "r")) freopen(_x, "r", stdin)//,freopen(_y, "w", stdout)
#define file "main"
#define bit(x, i) ((x >> i) & 1)
#define bat(x, i) (x | (1 << i))
int n, m;
int a[maxn], b[maxn], res;
string ss[maxn];
const int maxT = 2e6+5;
string s;
struct Node
{
int next[26] = {0};
int ex = 0;
int d = 0;
int c = 0;
};
Node T[maxT];
int nT = 0;
void add(string s)
{
int u = 0;
for(int i = 0; i < s.size(); i++)
{
if(!T[u].next[s[i] - 'a']) T[u].next[s[i] - 'a'] = ++nT;
int pos = u;
u = T[u].next[s[i] - 'a'];
T[u].c++;
}
T[u].ex++;
}
bool Find(string s)
{
int u = 0;
for(int i = 0; i < s.size(); i++)
{
if(T[u].next[s[i] - 'a'] == 0) return false;
u = T[u].next[s[i] - 'a'];
}
return T[u].ex != 0;
}
int cnt(string s)
{
int res = 0;
int u = 0;
for(int i = 0; i < s.size(); i++)
{
if(T[u].next[s[i] - 'a'] == 0) return 0;
u = T[u].next[s[i] - 'a'];
res += T[u].c;
}
return res;
}
map<string, int> mp;
pair<string,int> tv[maxn];
int ans[maxn];
bool cmp(pair<string,int> a, pair<string,int> b)
{
return mp[a.fi] < mp[b.fi];
}
int32_t main()
{
fastIO;
File(file ".inp", file ".out");
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> ss[i];
if(mp[ss[i]] == 0) mp[ss[i]] = i;
}
int q;
cin >> q;
for(int i = 1; i <= q; i++)
{
cin >> tv[i].fi;
if(mp[tv[i].fi] == 0) mp[tv[i].fi] = n+1;
tv[i].se = i;
}
sort(tv+1, tv+q+1, cmp);
int cntt = 1;
For(i, 1, n)
{
add(ss[i]);
while(cntt <= q && Find(tv[cntt].fi) && mp[tv[cntt].fi] <= i)
{
ans[tv[cntt].se] = cnt(tv[cntt].fi) + mp[tv[cntt].fi];
cntt++;
}
}
For(i, cntt, q)
{
if(ans[tv[i].se] == 0) ans[tv[i].se] = cnt(tv[i].fi) + n;
}
For(i, 1, q)
{
cout << ans[i] << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwpjb25zdCBpbnQgbWF4biA9IDFlNSs1Owpjb25zdCBpbnQgbW9kID0gMWU5ICsgNzsKY29uc3QgaW50IG9vID0gMWUxOCs1Owp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOwp0eXBlZGVmIHBhaXI8aW50LCBwYWlyPGludCwgaW50Pj4gaWlpOwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcmVhZChfYSwgbikgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBfYVtpXQojZGVmaW5lIEZvcihpLCBfYSwgX2IpIGZvcihpbnQgaSA9IF9hOyBpIDw9IF9iOyBpKyspCiNkZWZpbmUgZmFzdElPIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBGaWxlKF94LF95KSBpZiAoZm9wZW4oX3gsICJyIikpIGZyZW9wZW4oX3gsICJyIiwgc3RkaW4pLy8sZnJlb3BlbihfeSwgInciLCBzdGRvdXQpCiNkZWZpbmUgZmlsZSAibWFpbiIKI2RlZmluZSBiaXQoeCwgaSkgKCh4ID4+IGkpICYgMSkKI2RlZmluZSBiYXQoeCwgaSkgKHggfCAoMSA8PCBpKSkKCmludCBuLCBtOwppbnQgYVttYXhuXSwgYlttYXhuXSwgcmVzOwpzdHJpbmcgc3NbbWF4bl07Cgpjb25zdCBpbnQgbWF4VCA9IDJlNis1OwoKc3RyaW5nIHM7CgpzdHJ1Y3QgTm9kZQp7CiAgICBpbnQgbmV4dFsyNl0gPSB7MH07CiAgICBpbnQgZXggPSAwOwogICAgaW50IGQgPSAwOwogICAgaW50IGMgPSAwOwp9OwoKTm9kZSBUW21heFRdOwppbnQgblQgPSAwOwoKdm9pZCBhZGQoc3RyaW5nIHMpCnsKICAgIGludCB1ID0gMDsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzLnNpemUoKTsgaSsrKQogICAgewogICAgICAgIGlmKCFUW3VdLm5leHRbc1tpXSAtICdhJ10pIFRbdV0ubmV4dFtzW2ldIC0gJ2EnXSA9ICsrblQ7CiAgICAgICAgaW50IHBvcyA9IHU7CiAgICAgICAgdSA9IFRbdV0ubmV4dFtzW2ldIC0gJ2EnXTsKICAgICAgICBUW3VdLmMrKzsKICAgIH0KICAgIFRbdV0uZXgrKzsKfQoKYm9vbCBGaW5kKHN0cmluZyBzKQp7CiAgICBpbnQgdSA9IDA7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgcy5zaXplKCk7IGkrKykKICAgIHsKICAgICAgICBpZihUW3VdLm5leHRbc1tpXSAtICdhJ10gPT0gMCkgcmV0dXJuIGZhbHNlOwogICAgICAgIHUgPSBUW3VdLm5leHRbc1tpXSAtICdhJ107CiAgICB9CiAgICByZXR1cm4gVFt1XS5leCAhPSAwOwp9CgppbnQgY250KHN0cmluZyBzKQp7CiAgICBpbnQgcmVzID0gMDsKICAgIGludCB1ID0gMDsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzLnNpemUoKTsgaSsrKQogICAgewogICAgICAgIGlmKFRbdV0ubmV4dFtzW2ldIC0gJ2EnXSA9PSAwKSByZXR1cm4gMDsKICAgICAgICB1ID0gVFt1XS5uZXh0W3NbaV0gLSAnYSddOwogICAgICAgIHJlcyArPSBUW3VdLmM7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CgptYXA8c3RyaW5nLCBpbnQ+IG1wOwpwYWlyPHN0cmluZyxpbnQ+IHR2W21heG5dOwppbnQgYW5zW21heG5dOwoKYm9vbCBjbXAocGFpcjxzdHJpbmcsaW50PiBhLCBwYWlyPHN0cmluZyxpbnQ+IGIpCnsKICAgIHJldHVybiBtcFthLmZpXSA8IG1wW2IuZmldOwp9CgppbnQzMl90IG1haW4oKQp7CiAgICBmYXN0SU87CiAgICBGaWxlKGZpbGUgIi5pbnAiLCBmaWxlICIub3V0Iik7CgogICAgY2luID4+IG47CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gc3NbaV07CiAgICAgICAgaWYobXBbc3NbaV1dID09IDApIG1wW3NzW2ldXSA9IGk7CiAgICB9CiAgICBpbnQgcTsKICAgIGNpbiA+PiBxOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBxOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IHR2W2ldLmZpOwogICAgICAgIGlmKG1wW3R2W2ldLmZpXSA9PSAwKSBtcFt0dltpXS5maV0gPSBuKzE7CiAgICAgICAgdHZbaV0uc2UgPSBpOwogICAgfQogICAgc29ydCh0disxLCB0ditxKzEsIGNtcCk7CiAgICBpbnQgY250dCA9IDE7CiAgICBGb3IoaSwgMSwgbikKICAgIHsKICAgICAgICBhZGQoc3NbaV0pOwogICAgICAgIHdoaWxlKGNudHQgPD0gcSAmJiBGaW5kKHR2W2NudHRdLmZpKSAmJiBtcFt0dltjbnR0XS5maV0gPD0gaSkKICAgICAgICB7CiAgICAgICAgICAgIGFuc1t0dltjbnR0XS5zZV0gPSBjbnQodHZbY250dF0uZmkpICsgbXBbdHZbY250dF0uZmldOwogICAgICAgICAgICBjbnR0Kys7CiAgICAgICAgfQogICAgfQogICAgRm9yKGksIGNudHQsIHEpCiAgICB7CiAgICAgICAgaWYoYW5zW3R2W2ldLnNlXSA9PSAwKSBhbnNbdHZbaV0uc2VdID0gY250KHR2W2ldLmZpKSArIG47CiAgICB9CiAgICBGb3IoaSwgMSwgcSkKICAgIHsKICAgICAgICBjb3V0IDw8IGFuc1tpXSA8PCAnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0K