#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
void solve(){
int n,k;
cin>>n>>k;
vector<int> A(n),B(n+1,0);
int D=0;
for(int a=0;a<n;a++){
cin>>A[a];
D+=A[a];
B[a+1]=D;
}
vector<vector<int>> dp(n+1,vector<int>(k+2,-1));
vector<vector<int>> dp1(n+1,vector<int>(k+2));
dp[0][0]=D*D;
for(int a=0;a<n;a++){
for(int b=0;b<=k;b++){
if(dp[a][b]==-1){
continue;
}
for(int c=a+1;c<=n;c++){
// dp[c][b+1]=max(dp[c][b+1],dp[a][b]-(B[c]-B[a])*(B[c]-B[a]));
if(dp[c][b+1]<dp[a][b]-(B[c]-B[a])*(B[c]-B[a])){
dp1[c][b+1]=a;
dp[c][b+1]=dp[a][b]-(B[c]-B[a])*(B[c]-B[a]);
}
}
}
}
cout<<dp[n][k+1]/2<<endl;
vector<int> v;
int i=dp1[n][k+1],j=k;
v.push_back(i+1);
for(j--;j>0;j--){
i=dp1[i][j];
v.push_back(i+1);
}
reverse(v.begin(),v.end());
for(auto z:v){
cout<<z<<" ";
}
cout<<endl;
}
signed main(){
ios::sync_with_stdio();
cin.tie(0);
cout.tie(0);
// freopen("a.in", "r", stdin);
// freopen("a.out", "w", stdout);
ll t=1;
// cin>>t;
for(ll a=0;a<t;a++){
solve();
}
}