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