package main
import (
"fmt"
)
type Node struct {
name string
num int
}
func main() {
var n, op int
fmt.Scanf("%d", &n)
fmt.Scanf("%d", &op)
var k = make([]Node, n)
for i:=0;i<n;i++{
fmt.Scanf("%s %d", &k[i].name, &k[i].num)
}
if n == 1{
fmt.Println(k[0].name, k[0].num)
return
}
// 插入排序
var t Node
var i,j int
if op == 1{ // 升序
for i=1;i<n;i++{
t = k[i]
for j = i-1;j>=0;j--{
if k[j].num > t.num{
k[j+1] = k[j]
}else{
break
}
}
k[j+1] = t
}
}else{ // 降序
for i=1;i<n;i++{
t = k[i]
for j = i-1;j>=0;j--{
if k[j].num < t.num{
k[j+1] = k[j]
}else{
break
}
}
k[j+1] = t
}
}
for i:=0;i<n;i++{
fmt.Println(k[i].name, k[i].num)
}
}