#include<bits/stdc++.h>
using namespace std;
char s[1010];
int nex[500010][27],n,cnt;
bool b[500010][27];
void insert(int x){
cin>>s+1;
int l=strlen(s+1);
int now=0;
for(int i=1;i<=l;i++){
int p=s[i]-'a';
if(!nex[now][p]){
nex[now][p]=++cnt;
}
now=nex[now][p];
}
b[now][x]=1;
}
void check(){
cin>>s+1;
int l=strlen(s+1);
int now=0;
int flag=1;
for(int i=1;i<=l;i++){
int p=s[i]-'a';
if(!nex[now][p]){
flag=0;
break;
}
now=nex[now][p];
}
if(flag){
bool space=false;
for(int i=1;i<=n;i++){
if(b[now][i]){
if(space==true) cout<<" ";
cout<<i;
space=true;
}
}
}
puts(" ");
}
int main(){
cin>>n;
int x;
for(int i=1;i<=n;i++){
cin>>x;
for(int j=1;j<=x;j++){
insert(i);
}
}
int m;
cin>>m;
for(int i=1;i<=m;i++){
check();
}
return 0;
}