|
Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 256000/256000/256000/256000 Кб.
Пока студенты одних университетов усиленно тренировались перед финалом Чемпионата мира по программированию, студенты других университетов уже размышляли о следующем сезоне. У студентов Некоторого Поволжского Университета сложилось однозначное мнение о том, что они сделали не так в прошлом году, и поэтому они разрабатывают хитрый план по обеспечению победы на грядущем чемпионате.
Как вы, вероятно, знаете, студенческий Чемпионат мира — это командное соревнование, а каждая команда состоит из трёх студентов. Кроме того, вам, скорее всего, известно, что у олимпиадных программистов существует личный рейтинг (а вернее, даже несколько), отдалённо напоминающий рейтинг Эло для шахматистов.
В Некотором Поволжском Университете пришли к выводу, что чем меньше разница рейтинга среди участников команды, тем выше шансы команды на успешное выступление на Чемпионате мира. В связи с этим, к следующему сезону решено сформировать такие команды, чтобы рейтинг их участников различался как можно меньше.
Более формально, пусть команда сформирована из студентов с рейтингом A, B и C, тогда величина X = max(A, B, C) - min(A, B, C) называется разбросом рейтинга команды; максимальный из разбросов рейтинга выступающих команд называется худшим разбросом рейтинга. Из N студентов, обучающихся в Некотором Поволжском Университете, требуется собрать M команд таким образом, чтобы худший разброс рейтинга оказался как можно меньше. Эту задачу поручили вам.
Входные данные
Первая строка содержит целые числа N, M (3 <= N <= 10^5, 1 <= M <= N / 3) — соответственно количество студентов и количество команд, формируемых к следующему сезону.
Вторая строка содержит N целых чисел Ri (0 <= Ri <= 10^5) — личный рейтинг студентов.
Выходные данные
Выведите одно целое число — минимально возможный худший разброс рейтинга.
Примеры
Входные данные | Выходные данные |
5 1 1519 1578 1913 1434 1435 | 85 |
10 2 485 673 388 241 584 691 335 748 151 526 | 99 |
Для отправки решений необходимо выполнить вход.
|