Сумма минимумов

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

У Саши есть блокнот, состоящий из nn листочков, пронумерованных от 1 до nn. На ii-м листочке написано целое число a_ia\_i.

Аня собирается разорвать блокнот на kk частей, для этого она выбирает k1k-1 число 1r_1<r_2<<r_k1<n1 \le r\_1 < r\_2 < \ldots < r\_{k-1} < n и разрывает блокнот так, что листки с 1 по r_1r\_1-й оказываются в первой части, листки с (r_1+1)(r\_1+1)-го по r_2r\_2-й оказываются во второй части, и т.д., последняя kk-я часть содержит листки с (r_k1+1)(r\_{k-1}+1)-го по nn-й.

После того, как Аня разорвет блокнот, Саша найдет минимальное число в каждой из получившихся частей и сложит их. Аня хочет разорвать блокнот таким образом, чтобы получившаяся сумма была как можно больше. Помогите ей выбрать способ разорвать блокнот, чтобы максимизировать сумму минимальных значений.

입력

Первая строка ввода содержит два числа: nn и kk (2kn3002 \le k \le n \le 300). Вторая строка содержит nn целых чисел: a_1,a_2,,a_na\_1, a\_2, \ldots, a\_n (1a_i1091 \le a\_i \le 10^9).

출력

На первой строке выведите максимальное значение суммы, которое удастся достичь Ане. На второй строке выведите значения r_1,r_2,,r_k1r\_1, r\_2, \ldots, r\_{k-1}, которые ей необходимо выбрать. Если вариантов разорвать блокнот, чтобы максимизировать искомую сумму несколько, выведите любой из них.

힌트

В приведенном примере Аня разорвала блокнот на части \[1,10,2]\[1, 10, 2], \[8]\[8], \[9]\[9], \[3,5,4]\[3, 5, 4] и \[7,6]\[7, 6]. Искомая сумма равна 1+8+9+3+6=271 + 8 + 9 + 3 + 6 = 27.