#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct xinxi
{
int xh;
char xm[10];
int cj;
}a[101000];
int cmp1(xinxi x,xinxi y)
{
return x.xh<y.xh;
}
int cmp2(xinxi x,xinxi y)
{//if(x.cj==y.cj||strcmp(x.xm,y.xm)==0)
if(strcmp(x.xm,y.xm)==0) return x.xh<y.xh;
else
return strcmp(x.xm,y.xm)<0;
}
bool cmp3(xinxi x,xinxi y)
{
//if(x.cj==y.cj||strcmp(x.xm,y.xm)==0)
if(x.cj==y.cj)return x.xh<y.xh;
else
return x.cj<y.cj;
}
int main()
{
int n,c,i,j,k;
while(scanf("%d%d",&n,&c)!=EOF,n,c)
{
for(i=0;i<=n-1;i++)scanf("%d %s %d",&a[i].xh, &a[i].xm,&a[i].cj);
if(c==1)
{
sort(a,a+n,cmp1);printf("Case 1:\n");
}
else if(c==2)
{
sort(a,a+n,cmp2);printf("Case 2:\n");
}
else if(c==3)
{
sort(a,a+n,cmp3);printf("Case 3:\n");
}
for(i=0;i<=n-1;i++)
printf("%06d %s %d\n",a[i].xh,a[i].xm,a[i].cj);
}
return 0;
}