#include<bits/stdc++.h>
using namespace std;
const int N=5e5+5;
char s[N];
int n,m,trie[N][53];
map<int,int> mp[N];
int get(char x){
return x-'A';
}
void insert(int k){
cin>>s;
int now=0,len=strlen(s);
for(int i=0;i<len;i++){
int v=get(s[i]);
if(!trie[now][v]) trie[now][v]=1;
}
mp[now][k]=1;
}
int check(char x[]){
int now=0,len=strlen(x);
for(int i=0;i<len;i++){
int v=get(s[i]);
if(!trie[now][v]) return 0;
now=trie[now][v];
}
return now;
}
int main(){
cin>>n;
for(int i=1,x;i<=n;i++){
cin>>x;
for(int j=1;j<=x;j++) insert(i);
}
cin>>m;
for(int i=1;i<=m;i++){
cin>>s;
int v=check(s);
if(v){
for(int i=1;i<=n;i++){
if(mp[v][i]) cout<<i<<' ';
}
}
cout<<'\n';
}
return 0;
}