import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.KeyStore.Entry;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
// TreeMap实现
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
// 注意 hasNext 和 hasNextLine 的区别
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
String str="";
while((str=br.readLine())!=null){
int groupNum=Integer.valueOf(str );
String mode=br.readLine().trim();
String [] a=new String [groupNum];
for(int i=0;i<groupNum;i++) {
a[i]=br.readLine().trim();
}
TreeMap<StudentInfo,String> map=new TreeMap<>();
for(int i=0;i<groupNum;i++) {
String temp=a[i];
String [] tempArr=temp.split(" ");
StudentInfo tempStudent=
new StudentInfo(tempArr[0], Integer.valueOf(tempArr[1]));
map.put( tempStudent,temp );
}
print(mode, map);
}
}
private static void print(String mode, TreeMap<Main.StudentInfo, String> m) {
// TODO Auto-generated method stub
if("0".equals(mode)) {
for(java.util.Map.Entry<Main.StudentInfo, String> entry :m.entrySet()) {
System.out.println( entry.getValue());
}
}
else {
Map <Main.StudentInfoDes, String> map=new TreeMap<Main.StudentInfoDes, String>();
map= des(m);
for(java.util.Map.Entry<Main.StudentInfoDes, String> entry :map.entrySet()) {
System.out.println( entry.getValue());
}
}
}
private static Map<Main.StudentInfoDes, String> des(TreeMap<Main.StudentInfo, String> m) {
Map <Main.StudentInfoDes, String> map=new TreeMap<Main.StudentInfoDes, String>();
for(java.util.Map.Entry<Main.StudentInfo, String> entry :m.entrySet()) {
StudentInfoDes s_des=new StudentInfoDes(entry.getKey().name, entry.getKey().grade);
map.put(s_des, entry.getValue());
}
return map;
}
public static class StudentInfo implements Comparable<StudentInfo>{
private String name;
private Integer grade;
StudentInfo(String name,Integer grade){
this.name=name;
this.grade=grade;
}
@Override
public int compareTo(Main.StudentInfo o) {
if( o.grade-this.grade==0 ) {
return 1;
}
else
return o.grade-this.grade ;
}
@Override
public int hashCode() {
return name.hashCode();
}
}
public static class StudentInfoDes implements Comparable<StudentInfoDes>{
private String name;
private Integer grade;
StudentInfoDes(String name,Integer grade){
this.name=name;
this.grade=grade;
}
@Override
public int compareTo(Main.StudentInfoDes o) {
if( o.grade-this.grade==0 ) {
return 1;
}
else
return -o.grade+this.grade ;
}
@Override
public int hashCode() {
return name.hashCode();
}
}}

京公网安备 11010502036488号