#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<ll> a,pre,suff;
vector<ll> solve(ll l,ll r){
if(r==l) return {0,-1};
ll mn=1e9,ind=-1,x=0;
for(ll i=l ; i<r ; i++){
ll val=abs((pre[i]-pre[l-1])-(suff[i+1]-suff[r+1]));
if(val<mn){
mn=val;
x=(pre[i]-pre[l-1])*(suff[i+1]-suff[r+1]);
ind=i;
}
}
return {x,l,ind,r};
}
int main(){
ll n,k,i,j,q;
cin>>n>>k;
ll ans=0;
vector<ll> path;
a.resize(n+1);
pre.resize(n+2,0);
suff.resize(n+2,0);
for(i=1 ; i<=n ; i++) cin>>a[i];
for(i=1 ; i<=n ; i++) pre[i]=pre[i-1]+a[i];
for(i=n ; i>=1 ; i--) suff[i]=suff[i+1]+a[i];
priority_queue<vector<ll>> pq;
pq.push(solve(1,n));
while(k){
ll x=pq.top()[0];
ll l=pq.top()[1];
ll mid=pq.top()[2];
ll r=pq.top()[3];
ans+=x;
path.push_back(mid);
k--;
pq.pop();
pq.push(solve(l,mid));
pq.push(solve(mid+1,r));
}
cout<<ans<<"\n";
for(auto v:path) cout<<v<<" ";
return 0;
}