Рыцари многоугольного стола
В отличие от Рыцарей Круглого Стола, Рыцари Многоугольного Стола не отличаются благородством и готовы убить друг друга. Однако каждый рыцарь обладает своей силой, и один рыцарь может убить другого только если его сила больше, чем у жертвы. Тем не менее, даже такой рыцарь будет мучиться совестью, поэтому он может убить максимум k других рыцарей.
Кроме того, у каждого рыцаря есть определенное количество монет. При убийстве рыцарь может забрать монеты своей жертвы.
Каждый рыцарь задается вопросом: какое максимальное количество монет он может иметь, если будет убивать других рыцарей только он сам.
Вам нужно ответить на этот вопрос для каждого рыцаря.
Входные данные
Первая строка содержит два числа n и k (1 ≤ n ≤ 10^5
, 0 ≤ k ≤ min(n-1, 30)) – количество рыцарей и число k, указанное в условии.
Во второй строке находятся n чисел p[1]
, p[2]
… p[n]
(1 ≤ p[i]
≤ 10^9
) – силы рыцарей. Все p_i различны.
В третьей строке находятся n чисел c[1]
, c[2]
… c[n]
(1 ≤ c[i]
≤ 10^9
) – количество монет у рыцарей.
Выходные данные
Выведите n чисел – максимальное количество монет у каждого рыцаря.