/*
#include <stdio.h>
typedef struct
{
int x;
char y;
}st;
int main()
{
// st a;
// scanf("%d %c",&a.x,&a.y);
st arr[30];
int i, n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %c",&arr[i].x,&arr[i].y);
}
//int a;
//int arr[30];
}*/
/*
#include <stdio.h>
typedef struct
{
int a;
int b;
}
st;
int main()
{
int i, j;
int n;
st arr[10001];
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%d", &arr[i].a);
}
for(i=1; i<=n; i++)
{
arr[i].b=1;
for(j=1; j<=n; j++)
{
if(arr[i].a<arr[j].a)
{
arr[i].b++;
}
}
}
for(i=1; i<=n; i++)
{
printf("%d %d\n", arr[i].a, arr[i].b);
}
}
*/
/*
#include <stdio.h>
typedef struct
{
int a,b,c;
}
student;
int main()
{
int n, i, max=1,j,x,y;
student st[10001];
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%d %d %d", &st[i].a, &st[i].b, &st[i].c);
}
for(i=1; i<=n; i++)
{
if(st[max].c<st[i].c)
{
max=i;
}
}
printf("%d %d\n", st[max].a, st[max].b);
st[max].c=0;
x=st[max].a;
///////////////////////////////
for(i=1; i<=n; i++)
{
if(st[max].c<st[i].c)
{
max=i;
}
}
printf("%d %d\n", st[max].a, st[max].b);
st[max].c=0;
y=st[max].a;
//////////////////////
if(x==y)
{
for(i=1; i<=n; i++)
{
if(st[i].a==x)
{
st[i].c=0;
}
}
}
///////////////////////
for(i=1; i<=n; i++)
{
if(st[max].c<st[i].c)
{
max=i;
}
}
printf("%d %d\n", st[max].a, st[max].b);
}
*/
/*
#include <stdio.h>
typedef struct
{
int a;
int b;
}
st;
int main()
{
int m;
int n;
int i,j;
int min=1;
st arr[10001],temp;
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%d %d", &arr[i].a, &arr[i].b);
}
for(i=1; i<=n; i++)
{
min=i;
for(j=i+1; j<=n; j++)
{
if(arr[j].a<arr[min].a)
{
min=j;
}
}
temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
printf("%d %d\n", arr[i].a, arr[i].b);
}
}
*/
/*
#include <stdio.h>
typedef struct
{
char name[50];
int a;
int b;
int c;
}
st;
int main()
{
st arr[10001];
int n;
int max=1,x,y;
int i, j;
int temp;
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%s %d %d %d", arr[i].name, &arr[i].a, &arr[i].b, &arr[i].c);
}
for(i=1; i<=n; i++)
{
if(arr[i].a>arr[max].a)
{
max=i;
}
}
x=1;
y=1;
for(i=1; i<=n; i++)
{
if(arr[max].b<arr[i].b)
{
x++;
}
if(arr[max].c<arr[i].c)
{
y++;
}
}
printf("%s %d %d", arr[max].name, x, y);
}
*/
#include <stdio.h>
typedef struct
{
char name[50];
int a;
}
st;
int main()
{
int n, m;
int i, j;
st temp;
st arr[101];
scanf("%d %d", &n, &m);
for(i=1; i<=n; i++)
{
scanf("%s %d", arr[i].name, &arr[i].a);
}
for(i=1; i<n; i++){
for(j=1; j<=n-i; j++){
if(arr[j].a<arr[j+1].a)
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(i=1; i<=m; i++)
{
printf("%s\n", arr[i].name);
}
/*
for(i=1; i<=m; i++)
{
max=i;
for(j=i+1; j<=n; j++)
{
if(arr[j].a>arr[max].a)
{
max=j;
}
}
temp=arr[i];
arr[i]=arr[max];
arr[max]=temp;
printf("%s\n", arr[i].name);
}*/
}