B. Перестановка
ограничение по времени на тест
1 second
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

Пусть A = {a1, a2, ..., an} — это некоторая перестановка первых n натуральных чисел {1, 2, ..., n}. Вам задано натуральное число k и ещё одна последовательность B = {b1, b2, ..., bn}, где bi — количество элементов aj в A слева от элемента at = i, для которых aj ≥ (i + k).

Например, если n = 5, то A может быть равно {5, 1, 4, 2, 3}. Тогда для k = 2, B равно {1, 2, 1, 0, 0}. Но если k = 3, то B = {1, 1, 0, 0, 0}.

Для двух последовательностей X = {x1, x2, ..., xn} и Y = {y1, y2, ..., yn}, пусть i-ые элементы будут первыми элементами, при которых xi ≠ yi. Если xi < yi, то X лексикографически меньше, чем Y, в то время, как если xi > yi, то X лексикографически больше, чем Y.

Вам даны n, k и B. Вычислите лексикографически наименьшее возможное значение A.

Входные данные

В первой строке записаны через пробел два целых числа n и k (1 ≤ n ≤ 1000, 1 ≤ k ≤ n). Во второй строке записаны n целых чисел, уточняющих значения B = {b1, b2, ..., bn}

Выходные данные

Выведите в единственной строке n целых чисел A = {a1, a2, ..., an}, при которых A принимает лексикографически наименьшее возможное значение. Гарантируется, что решение существует.

Примеры
Входные данные
5 2
1 2 1 0 0
Выходные данные
4 1 5 2 3 
Входные данные
4 2
1 0 0 0
Выходные данные
2 3 1 4