#include<cstdio>
#include<iostream>
using namespace std;
#include<vector>
45556566
#include<algorithm>
const
int
M=
26
*
26
*
26
*
10
+
1
;
vector<
int
> selectCourse[M];
//把字符串name转换成数字
int
nameToNum(
char
name[]) {
int
id=
0
;
for
(
int
i=
0
;i<
3
;i++) {
id=id*
26
+(name[i]-
'A'
);
}
id=id*
10
+(name[
3
]-
'0'
);
return
id;
}
int
main() {
int
n,k;
char
name[
5
];
scanf(
"%d%d"
,&n,&k);
for
(
int
i=
0
;i<k;i++) {
int
course,x;
scanf(
"%d%d"
,&course,&x);
for
(
int
j=
0
;j<x;j++) {
scanf(
"%s"
,name);
int
id=nameToNum(name);
selectCourse[id].push_back(course);
}
}
for
(
int
i=
0
;i<n;i++) {
scanf(
"%s"
,name);
int
id=nameToNum(name);
sort(selectCourse[id].begin(),selectCourse[id].end());
printf(
"%s %d"
,name,selectCourse[id].size());
for
(
int
j=
0
;j<selectCourse[id].size();j++) {
printf(
" %d"
,selectCourse[id][j]);
}
printf(
"\n"
);
}
return
0
;
}