#include <bits/stdc++.h>
using namespace std;
int a[50050],t[50050];
int n,d;
bool check(int x)
{
int sum=0,pos=1;
for(int i=1;i<=d;i++)
{
for(int j=pos;j<=n;j++)
{
if(sum<x)
{
sum+=a[j];
t[j]=i;
pos++;
}
}
if(sum<x&&pos>n)
return false;
sum/=2;
}
return true;
}
int main()
{
int sum=0,ans=0;
cin>>n>>d;
for(int i=1;i<=n;i++)
{
cin>>a[i];
sum+=a[i];
}
int left=0,right=sum;
while(left<=right)
{
int mid=(left+right)/2;
if(check(mid))
{
left=mid+1;
ans=mid;
}
else right=mid-1;
}
cout<<ans<<endl;
for(int i=1;i<=n;i++)
cout<<t[i]<<endl;
return 0;
}