#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10,M=3e6+10;
long long T,n,q,cnt,lg;
long long trie[N][62],amount[M];
bool d[1005][105];
string s;
void search()
{
cin>>s;
int bj=0,flag=0;
for(int i=0;i<s.length();i++)
{
int x=s[i]-'a';
if(trie[bj][x]==0)
{
flag=1;
break;
}
bj=trie[bj][x];
}
if(flag==0)
{
for(int i=1;i<=n;i++)
{
if(d[bj][i])cout<<i<<" ";
}
}
cout<<endl;
}
void insert(int y)
{
cin>>s;
int bj=0;
for(int i=0;i<s.length();i++)
{
int x=s[i]-'a';
if(trie[bj][x]==0) trie[bj][x]=++cnt;
bj=trie[bj][x];
}
d[bj][y]=1;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>lg;
for(int j=1;j<=lg;j++)
{
insert(i);
}
}
cin>>q;
for(int i=1;i<=q;i++)
{
search();
}
return 0;
}