D2. Приравнивание делением (сложная версия)
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Единственное отличие между легкой и сложной версиями — количество элементов в массиве.

Вам задан массив $$$a$$$, состоящий из $$$n$$$ целых чисел. За один ход вы можете выбрать любое $$$a_i$$$ и разделить его на $$$2$$$ с округлением вниз (иными словами, за один ход вы можете присвоить $$$a_i := \lfloor\frac{a_i}{2}\rfloor$$$).

Вы можете совершать эту операцию любое (возможно, нулевое) количество раз с любым $$$a_i$$$.

Ваша задача — посчитать минимально возможное количество операций, необходимое для того, чтобы получить хотя бы $$$k$$$ равных чисел в массиве.

Не забудьте, что допустимо иметь $$$a_i = 0$$$ после каких-то операций, таким образом, ответ всегда существует.

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

Первая строка входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le k \le n \le 2 \cdot 10^5$$$) — количество элементов в массиве и необходимое количество равных элементов.

Вторая строка входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 2 \cdot 10^5$$$), где $$$a_i$$$ равно $$$i$$$-му элементу $$$a$$$.

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

Выведите одно целое число — минимально возможное количество операций, необходимое для того, чтобы получить хотя бы $$$k$$$ равных элементов в массиве.

Примеры
Входные данные
5 3
1 2 2 4 5
Выходные данные
1
Входные данные
5 3
1 2 3 4 5
Выходные данные
2
Входные данные
5 3
1 2 3 3 3
Выходные данные
0