编程题
### 问题描述
乐乐在玩一个生存游戏,游戏中有 $N$ 个生存者站成一列,每个生存者有一个初始能量值。如果一个生存者的能量值比相邻生存者多出不超过 $D$ 单位,那么这个生存者可以吸收相邻的生存者,增加对方的能量值,并使对方退出游戏。游戏继续进行,直到只剩下一个生存者。现在需要计算所有可能成为最后生存者的初始位置编号。
### 输入格式
第一行包含两个整数 $N$ 和 $D$。
第二行包含 $N$ 个整数,代表每个生存者的初始能量值 $G_i$。
### 输出格式
第一行输出所有可能成为最后生存者的初始位置编号,按升序排列。
### 样例输入
```
13 2
2 0 1 6 1 0 3 0 13 2 0 4 6
```
### 样例输出
```
4 5 6 7 9 10 11 12 13
```
### 评测数据规模
- $1 \leq N \leq 10^6$
- $0 \leq D \leq 10^9$
- $0 \leq G_i \leq 10^9$