#include<iostream>
#include<vector>
#include<algorithm>
#include<string.h>
using namespace std;
struct student{
char name[5];
vector<int>course;
};
student s[40000];
vector<int>v[2501];
bool comp(student&x,student&y)
{
return strcmp(x.name,y.name)<0;
}
int main()
{
int N,K;
int i,j,k;
scanf("%d %d",&N,&K);
getchar();
for(i=0;i<N;i++){
for(j=0;j<4;j++){
s[i].name[j]=getchar();
}
getchar();
s[i].name[j]=0;
scanf("%d",&j);
while(j--){
scanf("%d",&k);
s[i].course.emplace_back(k);
}
getchar();
}
sort(s,s+N,comp);
for(i=0;i<N;i++){
for(int each:s[i].course){
v[each].emplace_back(i);
}
}
for(i=1;i<=K;i++){
printf("%d %zu\n",i,v[i].size());
for(int each:v[i]){
printf("%s\n",s[each].name);
}
}
}