#1435. 杀死怪兽

杀死怪兽

问题陈述

Monocarp 正在玩另一款电脑游戏。他的角色又在杀怪了。有 nn 只怪物,编号从 11nn ,其中 ii 只怪物的初始健康值为 aia_i

Monocarp 的角色有一个能力,可以对当前生命值最高的怪物造成 kk 伤害。如果有多个生命值最高怪物生命值相同,则选择编号较小的一个。如果怪物的生命值在 Monocarp 使用能力后小于或等于 00 ,那么它就会死亡。

Monocarp 使用他的能力直到所有怪物死亡。你的任务是确定怪物死亡的顺序。

输入格式

输入

每个测试用例的第一行包含两个整数 nnkk ( 1n31051 \le n \le 3 \cdot 10^5 ; 1k1091 \le k \le 10^9 )--怪物的数量和 Monocarp 能力造成的伤害。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n ( 1ai1091 \le a_i \le 10^9 ) --怪物的初始生命值。

输出格式

打印 nn 个整数 - 按死亡顺序排列的怪物索引。

样例1

input

3 2
1 2 3

output

2 1 3

样例2

input

4 3
2 8 3 5

output

3 1 2 4

样例解释

在第一个样例中,健康点数变化如下: $[1, 2, \underline{3}] \rightarrow [1, \underline{2}, 1] \rightarrow [\underline{1}, 0, 1] \rightarrow [-1, 0, \underline{1}] \rightarrow [-1, 0, -1]$ .下划线表示在下一次使用 Monocarp 能力时将受到伤害的怪物。 在第三个样例中,健康值的变化如下: $[2, \underline{8}, 3, 5] \rightarrow [2, \underline{5}, 3, 5] \rightarrow [2, 2, 3, \underline{5}] \rightarrow [2, 2, \underline{3}, 2] \rightarrow [\underline{2}, 2, 0, 2] \rightarrow [-1, \underline{2}, 0, 2] \rightarrow [-1,-1,0,\underline{2}] \rightarrow [-1,-1,0,-1]$ .

限制与约定

对于20%20\%的数据,保证$1 \le n \le 100 ,1 \le k \le 10^6 ,1 \le a_i \le k$ 对于50%50\%的数据,保证$1 \le n \le 1000 ,1 \le k \le 10^9 ,1 \le a_i \le10^9$ 对于100%100\%的数据,保证$1 \le n \le 3 \cdot 10^5 ,1 \le k \le 10^9 ,1 \le a_i \le10^9$

  • 时间限制: 1s1 s
  • 空间限制: 256MB256 MB