#include<bits/stdc++.h>
using namespace std;
struct node{
int son[26];
bool flag;
} ch[1001][10001];
int m[1001],n,top=0;
void insert(int k,string a){
int p,len=a.length();
for(int i=0;i<len;i++){
int c=a[i]-'a'+1;
if(!ch[k][i].son[c]) ch[k][i].son[c]=++top;
p=ch[k][p].son[c];
}
ch[k][p].flag=1;
return;
}
bool find(int k,string a){
int p,len=a.length();
for(int i=0;i<len;i++){
int c=a[i]-'a'+1;
if(!ch[k][i].son[c]) return 0;
p=ch[k][p].son[c];
}
return ch[k][p].flag;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int l;
cin>>l;
for(int j=1;j<=l;j++){
string s;
cin>>s;
insert(i,s);
}
}
int q;
cin>>q;
while(q--){
string s;
cin>>s;
for(int i=1;i<=n;i++){
if(find(i,s)){
cout<<i<<" ";
}
}
cout<<endl;
}
return 0;
}