EduBrick

E. Извлечь k максимумов

2000 мс · 256 МБ · всё или ничего

Дана куча размера NN. Извлеките из неё kk максимумов той же процедурой, что в классе: последний элемент в корень, размер минус один, просеивание вниз.

Выведите извлечённые значения и кучу в конечном состоянии.

Отличие от классной задачи - в том, что извлечений не N−1N-1, а сколько попросят, и вывести надо не индексы, а сами значения и остаток кучи. Проверять это будет строже: если размер уменьшается не в тот момент, конечная куча окажется другой, даже если извлечённые значения совпадут.

Если kk равно NN, куча в конце пуста - выведите пустую строку.

Формат ввода

В первой строке - числа NN и kk (1≤k≤N≤1051 \le k \le N \le 10^5).

Во второй - куча из NN различных целых чисел.

Формат вывода

В первой строке - kk извлечённых значений в порядке извлечения.

Во второй - куча в конечном состоянии.

Примеры

ввод
6 2
12 6 8 3 4 7
вывод
12 8
7 6 4 3
ввод
1 1
5
вывод
5

Войдите, чтобы отправлять решения.