void printTable(Map<Person, List<Score>> table){
        List<Person> ls = new ArrayList<>(table.keySet());
        ls.sort(Comparator.comparing(p -> p.name));
        ToIntBiFunction<List<Score>, Person> extra = (t, p) -> {
            for (Score s: t) {
                if (s.self.equals(p)) return s.score;
            }
            return -1;
        };
        ls.forEach(p -> {
            StringJoiner j = new StringJoiner(",", "[", "]");
            List<Score> row = table.get(p);
            ls.stream()
              .mapToInt(t -> extra.applyAsInt(row, t))
              .mapToObj(i -> String.format("%2d", i))
              .forEach(j::add);
            System.out.println(p.name + j.toString());
        });
    }