#include <bits/stdc++.h>
using namespace std;
int n, i, j, k, x, y, z, m, q, h, l, timer;
int a[300500], b[300500];
set<pair<int, int> > f;
vector<int> ansv;
int main() {
  cin >> n >> k;
  for (i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  for (i = 0; i < k; i++) f.insert(make_pair(-a[i], i));
  long long ans = 0;
  for (i = k; i < n + k; i++) {
    if (i < n) f.insert(make_pair(-a[i], i));
    auto itr = f.begin();
    ans -= 1LL * (i - (*itr).second) * ((*itr).first);
    b[(*itr).second] = i + 1;
    f.erase(itr);
  }
  cout << ans << endl;
  for (i = 0; i < n; i++) printf("%d ", b[i]);
  return 0;
}
