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) } }