#agc002c. [agc002_c]Knot Puzzle

[agc002_c]Knot Puzzle

题目描述

我们有 NN 条绳子,编号从 11NN。第 ii 条绳子的长度为 aia_i

一开始,对于每个 i(1iN1)i (1 ≤ i ≤ N-1),绳子 ii 和绳子 i+1i+1 的末端被捆绑在一起,形成 N1N-1 个结的一根长绳。Snuke 将尝试通过重复执行以下操作来解开所有的结:

  • 选择一条(连接的)绳子,其总长度至少为 LL,然后解开其中一个结。

能否通过适当地应用这个操作来解开所有的 N1N-1 个结?如果答案是肯定的,请找到一种可能的解结顺序。

约束条件

  • 2N1052≤N≤10^5
  • 1L1091≤L≤10^9
  • 1ai1091≤a_i≤10^9
  • 所有输入值均为整数。

输入

输入以以下格式从标准输入中给出:

NN LL a1a_1 a2a_2 ...... ana_n

输出

如果无法解开所有 N1N-1 个结,打印 Impossible

如果可以解开所有的结,请打印 Possible,然后打印另外 N1N-1 行,描述一种可能的解结顺序。其中,这 N1N-1 行中的第 jj 行应包含第 jj 次操作解开的结的索引。这里,连接绳子 ii 和绳子 i+1i+1 的结的索引是 ii

如果有多个解决方案,则输出任意一个。


样例输入 1

3 50
30 20 10

样例输出 1

Possible
2
1

如果首先解开结 11,将导致无法解开结 22


样例输入 2

2 21
10 10

样例输出 2

Impossible

样例输入 3

5 50
10 20 30 40 50

样例输出 3

Possible
1
2
3
4

另一种可能的解决方案是 33441122