#include<iostream>#include<cstring>#include<vector>#include<stdio.h>#include<algorithm>
using namespace std;int n,m,k;struct Node{
string name;int height;};
Node node[10001];
string ans[25][10001];intcmp(Node a,Node b){
if(a.height != b.height)return a.height > b.height;return a.name < b.name;}intmain(){
cin>>n>>k;for(int i =0; i < n ; i++)
cin>>node[i].name>>node[i].height;sort(node,node+n,cmp);int num = n/k;int last = num + n % k;int cnt =0;int t =1;int f =0;int posi = last /2;for(int i =0; i < last ; i++){
ans[0][posi]= node[cnt++].name;if(f ==0){
f =1;
posi -= t++;}else{
f =0;
posi += t++;}}for(int i =1; i < k ;i++){
f =0;
posi = num /2;
t =1;for(int j =0; j < num ;j++){
ans[i][posi]= node[cnt++].name;if(f ==0){
f =1;
posi -= t++;}else{
f =0;
posi += t++;}}}for(int i =0; i < last ; i++){
if(i ==0)
cout<<ans[0][i];else
cout<<" "<<ans[0][i];}
cout<<endl;for(int i =1; i < k ;i++){
for(int j =0; j < num ; j++){
if(j ==0)
cout<<ans[i][j];else
cout<<" "<<ans[i][j];}
cout<<endl;}return0;}