Турнір на Багатокутному Столі збирає учасників, які змагаються у зборі монет, викликаючи один одного на дуель. Кожен учасник має унікальну силу, і учасник може отримати монети від іншого лише тоді, коли його сила більша. Проте, згідно з правилами турніру, кожен учасник може здобути монети не більше ніж у інших суперників.
Спочатку кожен учасник має певну кількість монет. Коли учасник виграє дуель у іншого, він забирає всі монети у переможеного суперника.
Кожного учасника цікавить: яку максимальну кількість монет він міг би накопичити, якщо ініціює лише свої виклики?
Ваша задача — визначити цю максимальну кількість для кожного учасника.
Перший рядок містить два цілі числа та (1 \leq n \leq 10^5, 0 \leq k \leq \min(n-1, 30)) — кількість учасників та максимальну кількість дуелей, які може ініціювати кожен учасник.
Другий рядок містить цілих чисел p_1, p_2, , p_n (1 \leq p_i \leq 10^9) — сили учасників, які всі різні.
Третій рядок містить цілих чисел c_1, c_2, , c_n (1 \leq c_i \leq 10^9) — кількість монет, з якою починає кожен учасник.
Виведіть цілих чисел — максимальну кількість монет, яку кожен учасник може отримати.
Приклад 1
Приклад 2
Приклад 3