#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef struct
{
int sequence;
string name;
int grade;
}student;
bool compare1(student a, student b)
{
if (a.grade < b.grade)
{
return true;
}
else if (a.grade > b.grade)
{
return false;
}
if (a.sequence < b.sequence)
{
return true;
}
else return false;
}
bool compare2(student a, student b)
{
if (a.grade > b.grade)
{
return true;
}
else if (a.grade < b.grade)
{
return false;
}
if (a.sequence < b.sequence)
{
return true;
}
else return false;
}
int main()
{
int n, tag;
while (scanf("%d",&n)!=EOF)
{student array[n];
scanf("%d", &tag);
for (int i = 0; i < n; i++)
{
array[i].sequence = i;
cin>>array[i].name>>array[i].grade;
}
if (tag == 1)
{
sort(array, array + n,compare1);
}
else
{
sort(array, array + n, compare2);
}
for (int i = 0; i < n; i++)
{
cout<<array[i].name<<" "<<array[i].grade<<endl;
}
}
return 0;
}