F. Сделай k одинаковых
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам задан массив $$$a$$$, состоящий из $$$n$$$ элементов, и целое число $$$k \le n$$$.

Вы хотите получить не менее чем $$$k$$$ одинаковых элементов в массиве $$$a$$$. За один ход вы можете совершить одну из следующих двух операций:

  • Взять один из минимальных элементов в массиве и увеличить его значение на один (более формально, если минимальный элемент в $$$a$$$ равен $$$mn$$$, то вы выбираете такой индекс $$$i$$$, что $$$a_i = mn$$$, и присваиваете $$$a_i := a_i + 1$$$);
  • взять один из максимальных элементов в массиве и уменьшить его значение на один (более формально, если максимальный элемент в $$$a$$$ равен $$$mx$$$, то вы выбираете такой индекс $$$i$$$, что $$$a_i = mx$$$, и присваиваете $$$a_i := a_i - 1$$$).

Ваша задача — посчитать минимальное количество ходов, необходимое, чтобы получить не менее чем $$$k$$$ одинаковых элементов в массиве.

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

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

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

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

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

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