#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")