B. Отбор на олимпиаду
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Совсем скоро в Берляндии состоится школьная командная олимпиада по программированию. От каждого из m регионов Берляндии для участия в олимпиаде приглашается команда из двух человек. Для формирования команд было решено провести отборочное соревнование, в котором приняли участие n берляндских школьников, причём от каждого из m регионов в нем участвовали хотя бы два школьника. Результатом каждого из участников отборочного соревнования является целое число баллов от 0 до 800 включительно.

Команда каждого региона формируется из двух таких участников отборочного соревнования от этого региона, что никого из них нельзя заменить школьником того же региона, не вошедшим в команду и набравшим большее число баллов. Может возникнуть ситуация, когда команду какого-либо региона нельзя сформировать однозначно, то есть существует больше одной команды школьников, удовлетворяющих описанному выше свойству. В таком случае в этом регионе требуется провести дополнительное соревнование. Две команды региона считаются различными, если существует хотя бы один школьник, который входит в одну команду и не входит в другую. Гарантируется, что в каждом регионе хотя бы два школьника участвовали в отборе.

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

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

В первой строке входных данных находятся два целых числа n и m (2 ≤ n ≤ 100 000, 1 ≤ m ≤ 10 000, n ≥ 2m) — количество участников отборочного соревнования и количество регионов в Берляндии.

Далее в n строках следует описание участников отборочного соревнования в следующем формате: фамилия (строка длиной от 1 до 10 символов, состоящая из строчных и прописных букв латинского алфавита), номер региона (целое число от 1 до m) и количество набранных участником баллов (целое число от 0 до 800 включительно).

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

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

Выведите m строк. В i-й строке выведите команду i-го региона — фамилии двух участников команды в произвольном порядке или единственный символ «?» (без кавычек), если в этом регионе потребуется провести дополнительное соревнование.

Примеры
Входные данные
5 2
Ivanov 1 763
Andreev 2 800
Petrov 1 595
Sidorov 1 790
Semenov 2 503
Выходные данные
Sidorov Ivanov
Andreev Semenov
Входные данные
5 2
Ivanov 1 800
Andreev 2 763
Petrov 1 800
Sidorov 1 800
Semenov 2 503
Выходные данные
?
Andreev Semenov
Примечание

В первом примере команды от регионов определяются однозначно.

Во втором примере команда от региона 2 определяется однозначно, а от региона 1 подходят три команды: «Petrov»-«Sidorov», «Ivanov»-«Sidorov», «Ivanov»-«Petrov», поэтому однозначно команду определить невозможно.