Type: Default 1000ms 256MiB

杀死怪兽

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

问题陈述

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