Class cla=(Class )malloc(sizeof(struct Class)*(k+1));
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
struct Class
{
int num;
int name[40010];
};
int fun(char *a)
{
return ((((a[0]-'A')*26+a[1]-'A')*26)+a[2]-'A')*10+a[3]-'0';
}
char na[5];
int main()
{
int n,k,C;
scanf("%d%d",&n,&k);
Class *cla=(Class *)malloc(sizeof(struct Class)*(k+1));
memset(cla,0,sizeof(cla));
for(int i = 0; i < n; i++)
{
scanf("%s",na);
int x = fun(na);
//printf("%s == %d\n",na,x);
scanf("%d",&C);
for(int j = 0; j < C; j++)
{
int a;
scanf("%d",&a);
cla[a].name[cla[a].num] = x;
cla[a].num++;
}
}
for(int i = 1; i <= k; i++)
{
printf("%d %d\n",i,cla[i].num);
sort(cla[i].name,cla[i].name+cla[i].num);
for(int j = 0; j < cla[i].num; j++)
{
int x = cla[i].name[j];
printf("%c",x/(26*26*10)+'A');
printf("%c",x/260%26+'A');
printf("%c",x/10%26+'A');
printf("%c",x%10+'0');
puts("");
}
//printf("%d\n",cla[i].name[j]);
}
}