
import java.util.*;

public class Main {
    static class Klasemen {
        private Map<String, Integer> poin = new LinkedHashMap<>();

        public Klasemen(String[] klub) {
            for (String nama : klub) {
                poin.put(nama, 0);
            }
        }

        public void catatPermainan(String klubKandang,
                                   String klubTandang,
                                   String skor) {
            String[] hasil = skor.split(":");
            int skorKandang = Integer.parseInt(hasil[0]);
            int skorTandang = Integer.parseInt(hasil[1]);

            if (!poin.containsKey(klubKandang) ||
                !poin.containsKey(klubTandang)) {
                return;
            }

            if (skorKandang > skorTandang) {
                poin.put(klubKandang, poin.get(klubKandang) + 3);
            } else if (skorKandang < skorTandang) {
                poin.put(klubTandang, poin.get(klubTandang) + 3);
            } else {
                poin.put(klubKandang, poin.get(klubKandang) + 1);
                poin.put(klubTandang, poin.get(klubTandang) + 1);
            }
        }

        public Map<String, Integer> cetakKlasemen() {
            List<Map.Entry<String, Integer>> daftar =
                new ArrayList<>(poin.entrySet());

            daftar.sort((a, b) ->
                Integer.compare(b.getValue(), a.getValue()));

            Map<String, Integer> hasil = new LinkedHashMap<>();
            for (Map.Entry<String, Integer> entri : daftar) {
                hasil.put(entri.getKey(), entri.getValue());
            }

            return hasil;
        }

        public String ambilPeringkat(int nomorPeringkat) {
            if (nomorPeringkat < 1 ||
                nomorPeringkat > poin.size()) {
                return null;
            }

            List<Map.Entry<String, Integer>> daftar =
                new ArrayList<>(cetakKlasemen().entrySet());

            return daftar.get(nomorPeringkat - 1).getKey();
        }
    }

    public static void main(String[] args) {
        Klasemen klasemen = new Klasemen(
            new String[]{"Liverpool", "Chelsea", "Arsenal"}
        );

        klasemen.catatPermainan("Arsenal", "Liverpool", "2:1");
        klasemen.catatPermainan("Arsenal", "Chelsea", "1:1");
        klasemen.catatPermainan("Chelsea", "Arsenal", "0:3");
        klasemen.catatPermainan("Chelsea", "Liverpool", "3:2");
        klasemen.catatPermainan("Liverpool", "Arsenal", "2:2");
        klasemen.catatPermainan("Liverpool", "Chelsea", "0:0");

        System.out.println(klasemen.cetakKlasemen());
        System.out.println(klasemen.ambilPeringkat(2));
    }
}
