B. Таблица результатов
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

От вас требуется вывести таблицу результатов для списка участников и набранных ими очков.

Участники должны быть упорядочены по не возрастанию набранных очков. Участники, имеющие одинаковое количество очков, упорядочиваются по лексикографическому порядку имени, причём регистр букв при сравнении игнорируется.

Смотрите описание формата вывода и пример для большей информации.

Входные данные

Первая строка содержит целое число $$$n$$$ — количество участников ($$$1 \leq n \leq 50\,000$$$).

В следующих $$$n$$$ строках содержится $$$name_i$$$ и $$$p_i$$$ — имя участника и количество набранных им очков, записанные через пробел. $$$p_i$$$ — целое неотрицательное число, не превосходящее $$$10^6$$$.

Имя участника состоит только из букв латинского алфавита и имеет длину от $$$1$$$ до $$$20$$$. Гарантируется, что все имена различны.

Выходные данные

Выведите таблицу результатов, состоящую из трёх столбцов.

Первый столбец должен иметь заголовок «Place». В нём отображаются места, которые занимают участники. Если несколько участников имеют одинаковое количество очков, то они разделяют общее место, которое отображается как диапазон. Смотрите пример для понимания.

Второй столбец имеет заголовок «Name» и служит для отображения имени, второй — «Score», для отображения очков участника.

Ширина каждого столбца должна быть равна длине максимальной ячейки этого столбца.

Первый столбец должен быть выровнен по правому краю, остальные два — по левому.

Пустоты в ячейках следует заполнять символом «.» (точка).

Границы ячеек обозначаются символом «|» (ASCII-код 124)

Пример
Входные данные
8
Petr 100
tourist 100
Bredor 9999
dZ 5
dx 5
Dy 5
pressF 0
user 33
Выходные данные
|Place|Name...|Score|
|....1|Bredor.|9999.|
|..2-3|Petr...|100..|
|..2-3|tourist|100..|
|....4|user...|33...|
|..5-7|dx.....|5....|
|..5-7|Dy.....|5....|
|..5-7|dZ.....|5....|
|....8|pressF.|0....|