#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false), cin.tie(nullptr);
  int n, k;
  cin >> n >> k;
  vector<int> c(n), t(n);
  for (int i = 0; i < n; i++) cin >> c[i];
  map<int, unordered_set<int>, greater<int>> m;
  for (int i = 0; i < k; i++) m[c[i]].insert(i);
  long long v = 0;
  for (int i = 0; i < n; i++) {
    if (i + k < n) m[c[i + k]].insert(i + k);
    auto it = m.begin();
    int j = *it->second.begin();
    t[j] = i + k + 1;
    v += static_cast<long long>(it->first) * (i - j + k);
    it->second.erase(it->second.begin());
    if (it->second.empty()) m.erase(it);
  }
  cout << v << '\n';
  for (int i = 0; i < n - 1; i++) cout << t[i] << ' ';
  cout << t[n - 1] << '\n';
}
