#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,d,a[50001],ans[50001],l,r=1;
bool check(int x){
int c=1,now=0;bool flag=1;
for(int i=1;i<=d&&flag;i++){
while(now<x&&c<=n)
ans[c]=i,now+=a[c++];
while(i==d&&c<=n)
ans[c]=i,now+=a[c++];
if(c>n&&now<x){
flag=0;
break;
}
now/=2;
}
return flag;
}
signed main(){
cin>>n>>d;
for(int i=1;i<=n;i++)
cin>>a[i],r+=a[i];
while(l<r){
int mid=(l+r)>>1;
if(check(mid)) l=mid+1;
else r=mid;
}
cout<<r-1<<endl;
for(int i=1;i<=n;i++)
cout<<ans[i]<<endl;
return 0;
}