/*
#include <stdio.h>
int a[10001];
int b[10001];
int n, i, j, temp,x;
int main() {
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<n; i++)
{
for(j=1;j<=n-i;j++)
{
if (a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 1; i <= n; i++)
printf("%d ", a[i]);
return 0;
}
#include <stdio.h>
int a[10001];
int b[10001];
int n, i, j, temp,x=0;
int main() {
for (i=1; i<=7; i++)
scanf("%d", &a[i]);
for(i=1; i<7; i++)
{
for(j=1;j<=7-i;j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
x++;
}
}
if(x==0){
break;
}
x=0;
}
printf("%d\n%d",a[7],a[6]);
return 0;
}
#include <stdio.h>
int a[10001];
int n, i, j, temp, min;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=1; i<n; i++) {
min=i;
for (j=i+1; j<=n; j++) {
if(a[j]>a[min]){
min=j;
}
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for (i=1; i<=n; i++)
printf("%d ", a[i]);
return 0;
}
*/
#include <stdio.h>
#include <string.h>
typedef struct{
int score;
char str[101];
}name;
int main()
{
name sarr[101],temp;
int n,i,j,m,t=1,x;
char tem;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++){
scanf("%s %d",sarr[i].str,&sarr[i].score);
}
for(i=1; i<n; i++)
{
for(j=1;j<=n-i;j++)
{
if (sarr[j].score < sarr[j+1].score)
{
temp = sarr[j];
sarr[j] = sarr[j+1];
sarr[j+1] = temp;
x++;
}
}
if(x==0){
break;
}
x=0;
}
for(i=1;i<=m;i++){
printf("%s\n",sarr[i].str);
}
return 0;
}