// 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; }