% Автор: Сергей Копелиович
% Источник: Чемпионат СПБГУ, октябрь 2013

\gdef\thisproblemauthor{Сергей Копелиович}
\gdef\thisproblemdeveloper{Сергей Копелиович}

\begin{problem}{Выпуклое и компактное}
{convexset.in}{convexset.out}
{2 секунды (\textsl{3 секунды для Java})}{256 мебибайт}{}

Вам даны $n$ точек на плоскости.

Гарантируется, что точки получены следующим образом:

\t{x[i] = random [0..1000]}

\t{y[i] = random [0..1000]}

Здесь функция \t{random [L..R]} выдаёт случайное целое число от $L$ до $R$
включительно, и все целые числа от $L$ до $R$ имеют равную вероятность.

Выберите $k$ точек так, чтобы периметр выпуклой оболочки выбранных точек
был минимальным.

\InputFile

В первой строке ввода заданы количество точек $n$ ($3 \le n \le 60$)
и число $k$ ($1 \le k \le 15$).
Следующие $n$ строк содержат координаты точек $x_i$ $y_i$
(целые числа от $0$ до $1000$).
Точки занумерованы целыми числами от $1$ до $n$.
Гарантируется, что вам везёт, и случайно сгенерированные $n$ точек
во вводе обладают следующим свойством:
никакие две не совпадают и никакие три не лежат на одной прямой.

\OutputFile

В первой строке выведите вещественное число "--- периметр выпуклой оболочки
выбранных точек.
Во второй строке выведите $k$ различных целых чисел от $1$ до $n$ "--- номера
выбранных точек.
Если оптимальных ответов несколько, выведите любой из них.
Точки можно выводить в любом порядке.

Рассмотрим три вещественных числа: правильный ответ, периметр выпуклой
оболочки набора точек, который вы вывели, и вещественное число,
которое вы вывели в первой строке.
Ваш ответ будет считаться правильным только в том случае,
если разница максимального и минимального из этих трёх чисел
не превосходит $10^{-6}$.

\Example

\begin{example}
\exmp{
5 4
0 0
0 1
4 4
2 0
2 1
}{
6
4 5 1 2
}%
\end{example}

\Note

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

\end{problem}
