#include <iostream>
#include <queue>
#include <string>
using namespace std;
struct Node{
string name;
int num;
int i;
int k ;
Node(string name,int num,int i ,int k)
:name(name),num(num),i(i),k(k){}
bool operator<(const Node &s) const {
if(k==0) {
if(num==s.num)
return i>s.i;
else return num<s.num;
}
if(k==1) {
if(num==s.num)
return i>s.i;
else return num>s.num;
}
return num>s.num;
}
};
int main() {
int n,k;
cin>>n>>k;
string s;
int a;
priority_queue<Node> que;
int i =0;
while(cin>>s>>a){
i++;
que.push(Node(s,a,i,k));
}
while(!que.empty()){
auto tem = que.top();
que.pop();
cout<<tem.name<<' '<<tem.num<<endl;
}
}
// 64 位输出请用 printf("%lld")