#include <iostream> #include<algorithm> #include<vector> #include<map> #include<string> using namespace std; struct student { string name; int score; int number; }; const int maxn = 2000; student arr[maxn]; bool compare0(student l, student r) { if (l.score == r.score) return l.number < r.number; return l.score > r.score; } bool compare1(student l, student r) { if (l.score == r.score) return l.number < r.number; return l.score < r.score; } int main() { int n; int leap; while (cin >> n >> leap) { for (int i = 0; i < n; i++) { string a; int b; cin >> a >> b; arr[i].name = a; arr[i].score = b; arr[i].number = i; } if (leap == 0) { sort(arr, arr + n, compare0); } else if (leap == 1) { sort(arr, arr + n, compare1); } for (int i = 0; i < n; i++) { cout << arr[i].name << " " << arr[i].score << endl; } } }