#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct Stu{
string name;
int height;
};
bool cmp(Stu s1,Stu s2){
if(s1.height==s2.height){
return s1.name<s2.name;
}else{
return s1.height>s2.height;
}
}
int main()
{
int n,k;
cin>>n>>k;
Stu stu[n];
for(int i=0;i<n;i++){
cin>>stu[i].name>>stu[i].height;
}
sort(stu,stu+n,cmp);
int rown=n/k;
int frown=n%k+rown;
int index=0;
string s="";
string result[10000];
for(int i=0;i<k&&index<n;i++){
s="";
for(int j=0;j<(i==0 ? frown:rown)&&index<n;j++){
if(j%2==0){
if(j==0){
s+=stu[index].name;
}else{
s+=" "+stu[index].name;
}
}else{
s=stu[index].name+" "+s;
}
index++;
}
result[i]=s;
}
for(int i=0;i<k;i++){
cout<<result[i]<<"\n";
}
return 0;
}