#include <bits/stdc++.h>
using namespace std;
struct tri {
  long long int p;
  long long int c;
  int idx;
  long long int ans;
};
bool com(tri t1, tri t2) { return t1.p < t2.p; }
int main() {
  ios_base::sync_with_stdio(false);
  int n, k;
  cin >> n >> k;
  tri t[n];
  for (int i = 0; i < n; i++) cin >> t[i].p;
  for (int i = 0; i < n; i++) cin >> t[i].c;
  for (int i = 0; i < n; i++) t[i].idx = i;
  sort(t, t + n, com);
  vector<long long int> ccost;
  t[0].ans = 0;
  for (int i = 1; i < n; i++) {
    ccost.push_back(t[i - 1].c);
    if (ccost.size() > k) {
      sort(ccost.rbegin(), ccost.rend());
      ccost.pop_back();
    }
    t[i].ans = 0;
    for (int j = 0; j < ccost.size(); j++) t[i].ans += ccost[j];
  }
  long long int ans[n];
  for (int i = 0; i < n; i++) ans[t[i].idx] = t[i].ans + t[i].c;
  for (int i = 0; i < n; i++) cout << ans[i] << " ";
  cout << "\n";
  return 0;
}
