#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;
}
}
}