#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
typedef struct sj
{
char name[9],num[7];
int score;
int sum;
}node;
node p[100005],temp;
int fun(char s[])
{
int i;
int k=0;
for(i=0;s[i]!='\0';i++)
{
k+=s[i]-'0';
k*=10;
}
k/=10;
return k;
}
int cmp1(const void *a,const void *b) /* 整型快排 */
{
node *aa=(node *)a;
node *bb=(node *)b;
return aa->sum - bb->sum;
}
int cmp2(const void *a,const void *b) /* 字符型'整型双重快排 */
{
node *aa=(node *)a;
node *bb=(node *)b;
if(strcmp(aa->name,bb->name)!=0)
return strcmp(aa->name,bb->name);
else return
aa->sum - bb->sum;
}
int cmp3(const void *a,const void *b) /* 字符型'整型双重快排 */
{
node *aa=(node *)a;
node *bb=(node *)b;
if(aa->score != bb->score)
return aa->score - bb->score;
else return
aa->sum - bb->sum;
}
int main()
{
int N,m;
int t=0;
int i,j;
freopen("D:\\input.txt","r",stdin);
while(cin>>N>>m && N+m)
{
t++;
for(i=0;i<N;i++)
{
cin>>p[i].num>>p[i].name>>p[i].score;
p[i].sum=fun(p[i].num);
}
if(m==1)
{
cout<<"Case "<<t<<':'<<endl;
qsort(p,N,sizeof(p[0]),cmp1);
for(j=0;j<N;j++)
{
cout<<p[j].num<<' '<<p[j].name<<' '<<p[j].score<<endl;
}
continue;
}
if(m==2)
{
cout<<"Case "<<t<<':'<<endl;
qsort(p,N,sizeof(p[0]),cmp2);
for(j=0;j<N;j++)
{
cout<<p[j].num<<' '<<p[j].name<<' '<<p[j].score<<endl;
}
continue;
}
if(m==3)
{
cout<<"Case "<<t<<':'<<endl;
qsort(p,N,sizeof(p[0]),cmp3);
for(j=0;j<N;j++)
{
cout<<p[j].num<<' '<<p[j].name<<' '<<p[j].score<<endl;
}
continue;
}
}
return 0;
}