编程题
### 问题描述
Bob 和 Alice 最近在学习博弈论,为了学以致用,他们找来了一大堆的小饼干,并通过博弈的方式来吃掉这些小饼干。他们将找来的小饼干分成 $n$ 堆,每堆小饼干有 $a_i$ 个小饼干。他们轮流对这些饼干进行操作,操作规则如下:
- 由 Alice 先手,每次从一堆小饼干中拿出 $k^m$ 个小饼干( $k$ 为奇数且 $m \geq 0$,且 $k^m$ 不能超出该堆小饼干的总数)。
- 当一方进行完操作后,如果已经没有剩余的小饼干,则该方获胜,赢得所有的小饼干。
Alice 和 Bob 都想赢得所有的小饼干,所以都会以最佳方法来取小饼干,请问他们之中谁能赢得所有的小饼干?
### 输入格式
第一行,输入两个正整数 $n$ $(1\leq n \leq 2 \times 10^6)$ , $k$ $(1 \leq k \leq 10^9)$ ,分别表示饼干的堆数和每次取出饼干的底数。
第二行,输入 $n$ 个整数,表示第 $i$ 堆小饼干有 $a_i$ 个小饼干。
### 输出格式
输出一行,包含一个字符串,输出 Alice 和 Bob 之中获胜的那个人。
### 样例输入 1
```
2 3
4 1
```
### 样例输出 1
```
Alice
```
### 样例输入 2
```
2 1
5 6
```
### 样例输出 2
```
Bob
```
### 样例说明
在第一个样例中,Alice 拿走第二堆饼干中的 $3$ $(k^0)$ 个饼干,此时剩余的饼干数分别为 $[1,1]$ ,此时,Bob 无论拿哪堆饼干都会使得剩下那堆饼干只有一个,Alice 只需要在下一轮拿走剩余的饼干即可获胜。
在第二个样例中,由于每次都只能取一个,且有 $11$ 个饼干,所以先手的人到最后一定会输掉比赛。