#include <algorithm>
#include <cmath>
#include <cstdio>
#include <deque>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <stdlib.h>
#include <string>
#include <vector>
using namespace std;
#define LL long long
#define LD long double
#define VI vector<int>
#define PB push_back
#define MP make_pair
#define F first
#define S second
#define PII pair<int,int>
#define PPII pair< PI , PI >
#define INF 2000000009
#if 0
#define get getchar_unlocked
#else
#define get getchar
#endif
/* Main Code */
#define MAXW 501
#define MAXN 101
#define MAXPL 5001
#define MAXSL 50001
#define MAXNODES 26000
#define MAXC 64
string P[MAXW],S[MAXN];
int w,n;
char inp[MAXPL],ins[MAXSL],node_ch[MAXNODES];
int ans[MAXW] = {0},node[MAXNODES][MAXC],lsp[MAXNODES],matches[MAXNODES] = {0},parent[MAXNODES];
int i,j,var,sz,k,pnn;
vector<int> node_p[MAXNODES];
vector<PII> new_node;
string ip,is;
inline void TakeInput(){
#if 1
cin>>w;
for(i = 0;i < w;i++){
cin>>P[i];
}
cin>>n;
for(i = 0;i < n;i++){
cin>>S[i];
}
#else
w = 500;
ip = "";
for(i = 0;i < 5000;i++){
ip += "a";
}
for(i = 0;i < w;i++){
P[i] = ip;
}
n = 100;
is = "";
for(i = 0;i < 50000;i++){
is += "a";
}
for(i = 0;i < n;i++){
S[i] = is;
}
#endif
}
inline int Index(char ch){
#if 1
if((ch >= 'a') && (ch <= 'z')){
return ch - 'a';
}
else if((ch >= 'A') && (ch <= 'Z')){
return ch - 'A' + 26;
}
else if((ch >= '0') &&(ch <= '9')){
return ch - '0' + 52;
}
else if(ch == '-'){
return 62;
}
else {
return 63;
}
#else
return (int)ch;
#endif
}
inline void AddStringToAutomaton(int i){
var = 0;
j = 0;
sz = P[i].length();
while(j < sz){
k = Index(P[i][j]);
if(node[var][k] == -1){
pnn++;
node[var][k] = pnn;
node_ch[pnn] = P[i][j];
parent[pnn] = var;
}
var = node[var][k];
j++;
}
node_p[var].PB(i);
}
inline void PrepareAutomaton(){
pnn = 0;
for(i = 0;i < MAXNODES;i++){
for(j = 0;j < MAXC;j++){
node[i][j] = -1;
}
}
for(i = 0;i < w;i++){
AddStringToAutomaton(i);
}
lsp[0] = 0;
for(i = 1;i <= pnn;i++){
j = lsp[parent[i]];
k = Index(node_ch[i]);
while(j > 0){
if(node[j][k] != -1){
j = node[j][k];
break;
}
j = lsp[j];
}
if((parent[i] != 0) && (j == 0)){
if(node[0][k] != -1){
j = node[0][k];
}
}
lsp[i] = j;
}
/*
for(i = 1;i <= pnn;i++){
cout<<i<<" "<<node_ch[i]<<" "<<parent[i]<<" "<<node_ch[parent[i]]<<" "<<lsp[i]<<" "<<node[0][Index(node_ch[i])]<<endl;
}
for(i = 1;i <= pnn;i++){
cout<<i<<" : ";
for(j = 0;j < node_p[i].size();j++){
cout<<node_p[i][j]<<" ";
}
cout<<endl;
}
//*/
}
inline void Process(int i){
int j,k,l,m;
l = S[i].length();
var = 0;
for(j = 0;j < l;j++){
k = Index(S[i][j]);
while(var > 0){
if(node[var][k] != -1){
var = node[var][k];
break;
}
//cout<<i<<" : "<<j<<" "<<var<<" "<<lsp[var]<<endl;
var = lsp[var];
}
if(var == 0){
if(node[0][k] != -1){
var = node[0][k];
}
}
matches[var]++;
//cout<<i<<" "<<j<<" "<<S[i][j]<<" "<<var<<endl;
}
}
inline void Solve(){
int i;
for(i = 0;i < n;i++){
Process(i);
}
/*
for(i = 1;i <= pnn;i++){
cout<<i<<" "<<matches[i]<<endl;
}
cout<<endl;
//*/
new_node.PB(MP(0,0));
for(i = 1;i <= pnn;i++){
j = new_node[parent[i]].F + 1;
new_node.PB(MP(j,i));
}
sort(new_node.begin(),new_node.end());
for(i = pnn;i > 0;i--){
k = new_node[i].S;
matches[lsp[k]] += matches[k];
for(j = node_p[k].size() - 1;j >= 0;j--){
ans[node_p[k][j]] = matches[k];
}
}
for(i = 0;i < w;i++){
cout<<ans[i]<<endl;
}
}
int main(){
TakeInput();
PrepareAutomaton();
Solve();
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8ZGVxdWU+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPHN0YWNrPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDx2ZWN0b3I+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAojZGVmaW5lIExMIGxvbmcgbG9uZwojZGVmaW5lIExEIGxvbmcgZG91YmxlCiAKI2RlZmluZSBWSSB2ZWN0b3I8aW50PgogCiNkZWZpbmUgUEIgcHVzaF9iYWNrCiNkZWZpbmUgTVAgbWFrZV9wYWlyCiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiNkZWZpbmUgUElJIHBhaXI8aW50LGludD4KI2RlZmluZSBQUElJIHBhaXI8IFBJICwgUEkgPgogCiNkZWZpbmUgSU5GIDIwMDAwMDAwMDkKIAojaWYgMAojZGVmaW5lIGdldCBnZXRjaGFyX3VubG9ja2VkCiNlbHNlCiNkZWZpbmUgZ2V0IGdldGNoYXIKI2VuZGlmCiAKLyogTWFpbiBDb2RlICovCiAKI2RlZmluZSBNQVhXIDUwMQojZGVmaW5lIE1BWE4gMTAxCiNkZWZpbmUgTUFYUEwgNTAwMQojZGVmaW5lIE1BWFNMIDUwMDAxCiNkZWZpbmUgTUFYTk9ERVMgMjYwMDAKI2RlZmluZSBNQVhDIDY0CiAKc3RyaW5nIFBbTUFYV10sU1tNQVhOXTsKaW50IHcsbjsKY2hhciBpbnBbTUFYUExdLGluc1tNQVhTTF0sbm9kZV9jaFtNQVhOT0RFU107CmludCBhbnNbTUFYV10gPSB7MH0sbm9kZVtNQVhOT0RFU11bTUFYQ10sbHNwW01BWE5PREVTXSxtYXRjaGVzW01BWE5PREVTXSA9IHswfSxwYXJlbnRbTUFYTk9ERVNdOwppbnQgaSxqLHZhcixzeixrLHBubjsKdmVjdG9yPGludD4gbm9kZV9wW01BWE5PREVTXTsKdmVjdG9yPFBJST4gbmV3X25vZGU7CiAKc3RyaW5nIGlwLGlzOwogCmlubGluZSB2b2lkIFRha2VJbnB1dCgpewojaWYgMQogICAgY2luPj53OwogICAgZm9yKGkgPSAwO2kgPCB3O2krKyl7CiAgICAgICAgY2luPj5QW2ldOwogICAgfQogICAgY2luPj5uOwogICAgZm9yKGkgPSAwO2kgPCBuO2krKyl7CiAgICAgICAgY2luPj5TW2ldOwogICAgfQojZWxzZQogICAgdyA9IDUwMDsKICAgIGlwID0gIiI7CiAgICBmb3IoaSA9IDA7aSA8IDUwMDA7aSsrKXsKICAgICAgICBpcCArPSAiYSI7CiAgICB9CiAgICBmb3IoaSA9IDA7aSA8IHc7aSsrKXsKICAgICAgICBQW2ldID0gaXA7CiAgICB9CiAgICBuID0gMTAwOwogICAgaXMgPSAiIjsKICAgIGZvcihpID0gMDtpIDwgNTAwMDA7aSsrKXsKICAgICAgICBpcyArPSAiYSI7CiAgICB9CiAgICBmb3IoaSA9IDA7aSA8IG47aSsrKXsKICAgICAgICBTW2ldID0gaXM7CiAgICB9CiNlbmRpZgp9CiAKaW5saW5lIGludCBJbmRleChjaGFyIGNoKXsKI2lmIDEKICAgIGlmKChjaCA+PSAnYScpICYmIChjaCA8PSAneicpKXsKICAgICAgICByZXR1cm4gY2ggLSAnYSc7CiAgICB9CiAgICBlbHNlIGlmKChjaCA+PSAnQScpICYmIChjaCA8PSAnWicpKXsKICAgICAgICByZXR1cm4gY2ggLSAnQScgKyAyNjsKICAgIH0KICAgIGVsc2UgaWYoKGNoID49ICcwJykgJiYoY2ggPD0gJzknKSl7CiAgICAgICAgcmV0dXJuIGNoIC0gJzAnICsgNTI7CiAgICB9CiAgICBlbHNlIGlmKGNoID09ICctJyl7CiAgICAgICAgcmV0dXJuIDYyOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuIDYzOwogICAgfQojZWxzZQogICAgcmV0dXJuIChpbnQpY2g7CiNlbmRpZgp9CiAKaW5saW5lIHZvaWQgQWRkU3RyaW5nVG9BdXRvbWF0b24oaW50IGkpewogICAgdmFyID0gMDsKICAgIGogPSAwOwogICAgc3ogPSBQW2ldLmxlbmd0aCgpOwogICAgd2hpbGUoaiA8IHN6KXsKICAgICAgICBrID0gSW5kZXgoUFtpXVtqXSk7CiAgICAgICAgaWYobm9kZVt2YXJdW2tdID09IC0xKXsKICAgICAgICAgICAgcG5uKys7CiAgICAgICAgICAgIG5vZGVbdmFyXVtrXSA9IHBubjsKICAgICAgICAgICAgbm9kZV9jaFtwbm5dID0gUFtpXVtqXTsKICAgICAgICAgICAgcGFyZW50W3Bubl0gPSB2YXI7CiAgICAgICAgfQogICAgICAgIHZhciA9IG5vZGVbdmFyXVtrXTsKICAgICAgICBqKys7CiAgICB9CiAgICBub2RlX3BbdmFyXS5QQihpKTsKfQogCmlubGluZSB2b2lkIFByZXBhcmVBdXRvbWF0b24oKXsKICAgIHBubiA9IDA7CiAgICBmb3IoaSA9IDA7aSA8IE1BWE5PREVTO2krKyl7CiAgICAgICAgZm9yKGogPSAwO2ogPCBNQVhDO2orKyl7CiAgICAgICAgICAgIG5vZGVbaV1bal0gPSAtMTsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaSA9IDA7aSA8IHc7aSsrKXsKICAgICAgICBBZGRTdHJpbmdUb0F1dG9tYXRvbihpKTsKICAgIH0KICAgIGxzcFswXSA9IDA7CiAgICBmb3IoaSA9IDE7aSA8PSBwbm47aSsrKXsKICAgICAgICBqID0gbHNwW3BhcmVudFtpXV07CiAgICAgICAgayA9IEluZGV4KG5vZGVfY2hbaV0pOwogICAgICAgIHdoaWxlKGogPiAwKXsKICAgICAgICAgICAgaWYobm9kZVtqXVtrXSAhPSAtMSl7CiAgICAgICAgICAgICAgICBqID0gbm9kZVtqXVtrXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGogPSBsc3Bbal07CiAgICAgICAgfQogICAgICAgIGlmKChwYXJlbnRbaV0gIT0gMCkgJiYgKGogPT0gMCkpewogICAgICAgICAgICBpZihub2RlWzBdW2tdICE9IC0xKXsKICAgICAgICAgICAgICAgIGogPSBub2RlWzBdW2tdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGxzcFtpXSA9IGo7CiAgICB9CiAgICAvKgogICAgZm9yKGkgPSAxO2kgPD0gcG5uO2krKyl7CiAgICAgICAgY291dDw8aTw8IiAiPDxub2RlX2NoW2ldPDwiICI8PHBhcmVudFtpXTw8IiAiPDxub2RlX2NoW3BhcmVudFtpXV08PCIgIjw8bHNwW2ldPDwiICI8PG5vZGVbMF1bSW5kZXgobm9kZV9jaFtpXSldPDxlbmRsOwogICAgfQogICAgZm9yKGkgPSAxO2kgPD0gcG5uO2krKyl7CiAgICAgICAgY291dDw8aTw8IiA6ICI7CiAgICAgICAgZm9yKGogPSAwO2ogPCBub2RlX3BbaV0uc2l6ZSgpO2orKyl7CiAgICAgICAgICAgIGNvdXQ8PG5vZGVfcFtpXVtqXTw8IiAiOwogICAgICAgIH0KICAgICAgICBjb3V0PDxlbmRsOwogICAgfQogICAgLy8qLwp9CiAKaW5saW5lIHZvaWQgUHJvY2VzcyhpbnQgaSl7CiAgICBpbnQgaixrLGwsbTsKICAgIGwgPSBTW2ldLmxlbmd0aCgpOwogICAgdmFyID0gMDsKICAgIGZvcihqID0gMDtqIDwgbDtqKyspewogICAgICAgIGsgPSBJbmRleChTW2ldW2pdKTsKICAgICAgICB3aGlsZSh2YXIgPiAwKXsKICAgICAgICAgICAgaWYobm9kZVt2YXJdW2tdICE9IC0xKXsKICAgICAgICAgICAgICAgIHZhciA9IG5vZGVbdmFyXVtrXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vY291dDw8aTw8IiA6ICI8PGo8PCIgIjw8dmFyPDwiICI8PGxzcFt2YXJdPDxlbmRsOwogICAgICAgICAgICB2YXIgPSBsc3BbdmFyXTsKICAgICAgICB9CiAgICAgICAgaWYodmFyID09IDApewogICAgICAgICAgICBpZihub2RlWzBdW2tdICE9IC0xKXsKICAgICAgICAgICAgICAgIHZhciA9IG5vZGVbMF1ba107CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbWF0Y2hlc1t2YXJdKys7CiAgICAgICAgLy9jb3V0PDxpPDwiICI8PGo8PCIgIjw8U1tpXVtqXTw8IiAiPDx2YXI8PGVuZGw7CiAgICB9Cn0KIAppbmxpbmUgdm9pZCBTb2x2ZSgpewogICAgaW50IGk7CiAgICBmb3IoaSA9IDA7aSA8IG47aSsrKXsKICAgICAgICBQcm9jZXNzKGkpOwogICAgfQogICAgLyoKICAgIGZvcihpID0gMTtpIDw9IHBubjtpKyspewogICAgICAgIGNvdXQ8PGk8PCIgIjw8bWF0Y2hlc1tpXTw8ZW5kbDsKICAgIH0KICAgIGNvdXQ8PGVuZGw7CiAgICAvLyovCiAgICBuZXdfbm9kZS5QQihNUCgwLDApKTsKICAgIGZvcihpID0gMTtpIDw9IHBubjtpKyspewogICAgICAgIGogPSBuZXdfbm9kZVtwYXJlbnRbaV1dLkYgKyAxOwogICAgICAgIG5ld19ub2RlLlBCKE1QKGosaSkpOwogICAgfQogICAgc29ydChuZXdfbm9kZS5iZWdpbigpLG5ld19ub2RlLmVuZCgpKTsKICAgIGZvcihpID0gcG5uO2kgPiAwO2ktLSl7CiAgICAgICAgayA9IG5ld19ub2RlW2ldLlM7CiAgICAgICAgbWF0Y2hlc1tsc3Bba11dICs9IG1hdGNoZXNba107CiAgICAgICAgZm9yKGogPSBub2RlX3Bba10uc2l6ZSgpIC0gMTtqID49IDA7ai0tKXsKICAgICAgICAgICAgYW5zW25vZGVfcFtrXVtqXV0gPSBtYXRjaGVzW2tdOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpID0gMDtpIDwgdztpKyspewogICAgICAgIGNvdXQ8PGFuc1tpXTw8ZW5kbDsKICAgIH0KfQogCmludCBtYWluKCl7CiAgICBUYWtlSW5wdXQoKTsKICAgIFByZXBhcmVBdXRvbWF0b24oKTsKICAgIFNvbHZlKCk7CiAgICByZXR1cm4gMDsKfSA=