#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <set>
using namespace std;
int main()
{
int n,k;
cin>>n>>k;
vector<string>v;
multimap<string,int>m;
while(k--)
{
int a,b;
cin>>a>>b;
while(b--)
{
string tmp;
cin>>tmp;
m.insert(pair<string,int>(tmp,a));
}
}
for(int i=0;i<n;i++)
{
string tmp;
cin>>tmp;
v.push_back(tmp);
}
for(int i=0;i<n;i++)
{
cout<<v[i]<<" ";
int num=m.count(v[i]);
set<int>result;
cout<<num;
if(num!=0)
cout<<" ";
multimap<string,int>::iterator it;
it=m.find(v[i]);
for(int i=0;i<num;i++)
{
result.insert((*it).second);
it++;
}
set<int>::iterator iter=result.begin();
for(int i=0;i<result.size();i++)
{
cout<<*iter;
if(i!=result.size()-1)
cout<<" ";
else
cout<<endl;
iter++;
}
}
}
最后一个case超时了