#define _CRT_SECURE_NO_WARNINGS 1
#include <bits/stdc++.h>
using namespace std;
struct student {
string name;
int score;
int order;
};
bool compare_1(student x, student y) { //1从低到高
if (x.score == y.score)return x.order < y.order;
else return x.score < y.score;
}
bool compare_2(student x, student y) { //0从高到低
if (x.score == y.score)return x.order < y.order;
else return x.score > y.score;
}
int main() {
int type = 0, n = 0;
while (scanf("%d%d", &n, &type) != EOF) {
student arr[n];//数据范围未知
for (int i = 0; i < n; i++) {
cin >> arr[i].name >> arr[i].score;
arr[i].order = i;
}
if (type == 0) {
sort(arr, arr + n, compare_2);
} else {
sort(arr, arr + n, compare_1);
}
for (int j = 0; j < n; j++) {
cout << arr[j].name << " " << arr[j].score << endl;
}
}
return 0;
}