#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int maxn = 26 * 26 * 26 * 10 +1;
struct student{
char name[5];
vector<int> course;
}stu[maxn];
int getid(char s[])
{
int id = 0;
for(int i = 0; i< 3;i++)
{
id = id * 26 + s[i]-'A';
}
id = id * 10 + s[3] - '0';
return id;
}
int main()
{
int n,k,u,v;
char s[5];
scanf("%d %d",&n,&k);
for(int i = 0; i < k; i++)
{
scanf("%d %d",&u,&v);
for(int j = 0; j < v; j++)
{
scanf("%s",s);
int id = getid(s);
strcpy(stu[id].name,s);
stu[id].course.push_back(u);
}
}
for(int i = 0; i < n; i++)
{
scanf("%s",s);
int id = getid(s);
printf("%s",s);
printf(" %d",stu[id].course.size());
sort(stu[id].course.begin(),stu[id].course.end());
for(int j = 0; j < stu[id].course.size(); j++)
{
printf(" %d",stu[id].course[j]);
}
printf("\n");
}
return 0;
}