#include <bits/stdc++.h>
using namespace std;
int fans[10], zz;
int cmpfunc(const void* a, const void* b) {
  return (*(long long int*)a - *(long long int*)b);
}
long long int min(int k) {
  long long int i, mint = 100000000000;
  for (i = 0; i < k; i++) {
    if (fans[i] < mint) {
      mint = fans[i];
      zz = i;
    }
  }
  return mint;
}
int main() {
  int n, k;
  cin >> n >> k;
  long long int pw[n], c[n], i, pwc[2 * n];
  map<long long int, long long int> mp;
  for (i = 0; i < n; i++) {
    cin >> pw[i];
  }
  for (i = 0; i < n; i++) {
    cin >> c[i];
    mp[pw[i]] = c[i];
  }
  for (i = 0; i < n; i++) {
    pwc[2 * i] = pw[i];
    pwc[2 * i + 1] = i;
  }
  qsort(pwc, n, 2 * sizeof(long long int), cmpfunc);
  memset(fans, 0, 10 * sizeof(long long int));
  long long int ans[n], tp = 0;
  for (i = 0; i < k; i++) {
    tp = tp + mp[pwc[2 * i]];
    ans[pwc[2 * i + 1]] = tp;
    fans[i] = mp[pwc[2 * i]];
  }
  for (i = k; i < n; i++) {
    ans[pwc[2 * i + 1]] = tp + mp[pwc[2 * i]];
    long long int mint = min(k);
    if (mp[pwc[2 * i]] > mint) {
      tp = tp - mint + mp[pwc[2 * i]];
      fans[zz] = mp[pwc[2 * i]];
    }
  }
  for (i = 0; i < n; i++) cout << ans[i] << " ";
  return 0;
}
