#include <bits/stdc++.h>
using namespace std;
long long tim[300010];
struct lll {
  long long r;
  bool friend operator<(lll a, lll b) { return tim[a.r] < tim[b.r]; }
};
priority_queue<lll> q;
long long sum, ans[300039];
int main() {
  lll tmp;
  long long n, k, i, b, c;
  cin >> n >> k;
  for (i = 1; i <= n; i++) cin >> tim[i];
  for (i = 1; i <= k; i++) {
    q.push((lll){i});
  }
  for (i = k + 1; i <= n + k; i++) {
    if (i <= n) {
      q.push((lll){i});
    }
    tmp = q.top(), q.pop();
    ans[tmp.r] = i;
    sum += tim[tmp.r] * (i - tmp.r);
  }
  cout << sum << endl;
  for (i = 1; i <= n; i++) {
    printf("%I64d ", ans[i]);
  }
  return 0;
}
