#include <iostream>
#include <sstream>
#include<unordered_map>
#include<vector>
#include<map>
#include<set>
#include<sstream>
using namespace std;
int main() {
int n;
cin>>n;
map<string,set<int>>mp;//设置一个知道单词就查到在哪个句子里面有的
//完成输入句子 划分句子成分 为每一个有的单词标记出现的句子序号
string line;
getline(cin,line);
//上面的两行代码专门读取cin之后的换行符
for(int i=1;i<=n;i++)
{
string line;
getline(cin,line);
stringstream ss(line);
int k;
ss>>k;
string word;
for(int j=0;j<k;j++){
ss>>word;
mp[word].insert(i);
}
}
int m;
cin>>m;
for(int i=1;i<=m;i++)
{
string qword;
cin>>qword;
if(mp.count(qword))
{
const auto&doc_ids=mp[qword];//获取所有类型为set 的qword对应的值
bool first=true;
for(int id:doc_ids)//把它打印出来
{
if(!first)cout<<" ";
cout<<id;
first=false;
}
}
cout<<endl;
}
}
// 64 位输出请用 printf("%lld")