#include<bits/stdc++.h>
#define int unsigned long long
#define N 50005
using namespace std;
int n,d,a[N],l,r,mid,ans = -1,b[N],c[N],t;
bool f(int x)
{
memset(b,0,sizeof(b));
int sum = 0;
t = 1;
for(int i = 1;i <= d;i++)
{
sum /= 2;
while(sum < x)
{
if(t > n)
{
return 0;
}
b[t] = i;
sum += a[t];
t++;
}
}
return 1;
}
signed main()
{
ios :: sync_with_stdio(0);
cin >> n >> d;
for(int i = 1;i <= n;i++)
{
cin >> a[i];
}
l = 1,r = 1e9;
while(l <= r)
{
mid = l + r >> 1;
if(f(mid))
{
ans = mid;
l = mid + 1;
for(int i = 1;i <= n;i++)
{
c[i] = b[i];
}
}
else
{
r = mid - 1;
}
}
cout << ans << endl;
for(int i = 1;i <= n;i++)
{
cout << c[i] << endl;
}
return 0;
}