// An highlighted block
#include <iostream>
#include <set>
#include <string.h>
using namespace std;
const int maxn=(26*26*26+1)*10;
set<int> course[maxn];
int getid(char str[]){
int sum=0;
for(int i=0;i<3;i++)
sum=sum*26+(str[i]-'A');
return sum*10+(str[3]-'0');
}
int main(){
int N,K;
char str[10];
scanf("%d%d",&N,&K);
for(int i=0;i<K;i++){
int courseid,coursenum;
scanf("%d%d",&courseid,&coursenum);
for(int j=0;j<coursenum;j++){
scanf("%s",str);
course[getid(str)].insert(courseid);
}
}
for(int i=0;i<N;i++){
scanf("%s",str);
printf("%s",str);
int id=getid(str);
printf(" %d",course[id].size());
for(set<int>::iterator it=course[id].begin();it!=course[id].end();it++)
printf(" %d",*it);
printf("\n");
}
return 0;
}