#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
char name[9];
int height;
} person;
int cmp(const void *a, const void *b) {
person p1 = *(person *)a;
person p2 = *(person *)b;
if (p1.height != p2.height) {
return p2.height - p1.height;
} else {
return strcmp(p1.name, p2.name);
}
}
void print(person *p, int num) {
int i;
for(i = num / 2 * 2 - 1; i > 0; i -= 2) {
printf("%s ", p[i].name);
}
for(i = 0; i < num - 2; i += 2) {
printf("%s ", p[i].name);
}
printf("%s\n", p[i].name);
}
int main() {
int N, K;
scanf("%d %d", &N, &K);
person people[N];
for (int i = 0; i < N; i++) {
scanf("%s %d", &people[i].name, &people[i].height);
}
qsort(people, N, sizeof(person), cmp);
int remain = N - N / K * (K-1);
person *p = people;
print(p, remain);
p += remain;
for (int i = 0; i < K - 1; i++) {
print(p, N/K);
p += N/K;
}
return 0;
}