AT_icpc2013summer_warmingUp_h Shuffling Machine
题目描述
KM 最近买了一台新的洗牌机。根据他的设想,这台机器每次洗牌的结果都是一致的。也就是说,存在一个整数序列 $a_1, a_2, \ldots, a_N$,满足以下条件:
- 洗牌后的第 1 张牌总是初始排列中的第 $a_1$ 张牌,
- 洗牌后的第 2 张牌总是初始排列中的第 $a_2$ 张牌,
- 以此类推。
为了验证这个设想,KM 将 $N$ 张牌按顺序排列为 $1, 2, \ldots, N$。然而,他不小心按了机器的开关 $K$ 次,导致最终牌的顺序变为 $b_1, b_2, \ldots, b_N$。
KM 认为你可以根据最终的顺序 $b_1, b_2, \ldots, b_N$ 推断出原始的排列顺序 $a_1, a_2, \ldots, a_N$。你能做到吗?
输入的第一行包含两个整数 $N$ 和 $K$,表示牌的数量和机器开关被按下的次数。第二行包含 $N$ 个不同的整数,代表最终的牌顺序 $b_1, b_2, \ldots, b_N$。
你的任务是:
- 如果 KM 的设想不可能实现,输出 `Impossible`。
- 如果有多种可能的原始顺序,输出 `Ambiguous`。
- 如果能确定唯一的原始顺序,输出该顺序 $a_1, a_2, \ldots, a_N$。
### 示例输入与输出
```
3 2
3 1 2
```
输出:
```
2 3 1
```
```
3 2
1 3 2
```
输出:
```
Impossible
```
```
4 2
2 1 4 3
```
输出:
```
Ambiguous
```
输入格式
- 第一行包含两个整数 $N$ 和 $K$,分别表示牌的数量和洗牌机开关按下的次数。
- 第二行包含 $N$ 个不同的整数,代表最终的牌顺序。
输出格式
- 如果无法实现设想,输出 `Impossible`。
- 如果有多种可能的原始顺序,输出 `Ambiguous`。
- 否则,输出唯一可能的原始顺序。
说明/提示
- $1 \leq N \leq 10^5$
- $1 \leq K \leq 10^{18}$
- $1 \leq b_i \leq N$
**本翻译由 AI 自动生成**