/*#include <stdio.h>
int a[10001];
int n, i, j, temp, key;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=2; i<=n; i++)
{
key=a[i];
for (j=i-1; j>=1 && a[j]>key; j--)
{
a[j+1]=a[j];
}
a[j+1]=key;
}
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}
#include<stdio.h>
typedef struct
{
char name[100];
int score;
}student;
student arr[51]={}, temp;
int main()
{
int n, i, j, max;
scanf ("%d", &n);
for (i=1; i<=n; i++){
scanf ("%s %d", arr[i].name, &arr[i].score);
}
for (i=1; i<n; i++){
max=i;
for (j=i+1; j<=n; j++){
if (arr[max].score<arr[j].score){
max=j;
}
}
temp=arr[max];
arr[max]=arr[i];
arr[i]=temp;
}
printf ("%s", arr[3].name);
return 0;
}
#include<stdio.h>
typedef struct
{
int a;
int b;
}machine;
machine arr[101]={}, temp;
int main()
{
int n, i, j, min;
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[min].a>arr[j].a){
min=j;
}
}
temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
for (i=1; i<=n; i++){
printf ("%d %d\n", arr[i].a, arr[i].b);
}
return 0;
}*/
#include<stdio.h>
typedef struct
{
char name[200];
int score;
}student;
student arr[101]={}, temp;
int main()
{
int n, m, i, j, max, a;
scanf("%d %d", &n, &m);
for (i=1; i<=n; i++){
scanf("%s %d", arr[i].name, &arr[i].score);
}
for(i=1; i<n; i++){
max=i;
a=1;
for (j=i+1; j<=n; j++){
if (arr[max].score<arr[j].score){
max=j;
}
if (arr[max].score==arr[j].score){
a=j;
}
}
if (max!=i&&a!=0){
arr[max]=arr[a]
}
temp=arr[max];
arr[max]=arr[i];
arr[i]=temp;
}
for (i=1; i<=m; i++){
printf ("%s\n", arr[i].name);
}
return 0;
}