import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Kadai3 {
public static void main(String[] args) throws IOException {
int n,i;
String str;
String pref[] = new String[47]; //県名
int pop[] = new int[47]; //人口
FileInputStream fis = new FileInputStream( "07pop.csv" );
InputStreamReader isr = new InputStreamReader( fis );
BufferedReader br = new BufferedReader( isr );
n=0;
while( br.ready() ){ /* ファイルからデータを読み込める間繰り返す */
str = br.readLine(); //1行読み込みsrtに代入
StringTokenizer st1 = new StringTokenizer( str, ",", false );
// str(1行文)をカンマ「,」で区切って、文字列トークンに代入
pref[n]= st1.nextToken();
pop[n]= Integer.parseInt( st1.nextToken() );
n++;
}
br.close(); //ストリーム,バッファをクローズ
isr.close();
fis.close();
sort(pop, pref);
for (i = 0; i < pop.length; i++) {
System.out.println(String.format("%2d. %s: %d", (i + 1), pref[i], pop[i]));
}
}
private static void sort(int[] pop, String[] pref) {
quickSort(pop, pref, 0, pop.length - 1);
}
private static void quickSort(int[] pop, String[] pref, int l, int r) {
if (l < r) {
int p = partition(pop, pref, l, r);
quickSort(pop, pref, l, p - 1);
quickSort(pop, pref, p + 1, r);
}
}
private static int partition(int[] pop, String[] pref, int l, int r) {
int i, j, tmp;
int pivot = pop[r];
i = l - 1;
for (j = l; j < r; j++) {
if (pop[j] >= pivot) {
i++;
swap(pop, pref, i, j);
}
}
swap(pop, pref, i + 1, r);
return i + 1;
}
private static void swap(int[] pop, String[] pref, int i, int j) {
int tmp = pop[i];
pop[i] = pop[j];
pop[j] = tmp;
String s = pref[i];
pref[i] = pref[j];
pref[j] = s;
}
}