#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
struct node
{
int height;
char name[10];
}people[10010];
char res[10010][10];
int cmp(node n1, node n2)
{
if(n1.height != n2.height)
{
return n1.height > n2.height;
}
return strcmp(n1.name, n2.name) < 0;
}
int main()
{
int n, k;
scanf("%d%d", &n, &k);
int i;
for(i = 1; i <= n; i++)
{
getchar();
scanf("%s%d", people[i].name, &people[i].height);
}
sort(people + 1, people + n + 1, cmp);
int m, mid, low, high, index = 1, j;
for(i = 1; i <= k; i++)
{
m = n / k;
if(i == 1 && n % k > 0)
{
m += n % k;
}
mid = m / 2 + 1;
strcpy(res[mid], people[index++].name);
low = mid - 1;
high = mid + 1;
while(low >= 1 || high <= m)
{
if(low >= 1)
{
strcpy(res[low--], people[index++].name);
}
if(high <= m)
{
strcpy(res[high++], people[index++].name);
}
}
for(j = 1; j <= m; j++)
{
if(j > 1)
{
printf(" ");
}
printf("%s", res[j]);
}
printf("\n");
}
system("pause");
return 0;
}