给定一个长度为 $n$ 的数组 $v_1,v_2,…,v_n$。
初始时,数组中的所有元素都为 $0$。
接下来,可以对该数组进行若干次如下操作------对于第 $i$ 次操作($i$ 从 $0$ 开始),你可以:
- 要么选择其中一个元素 $v_{pos}$,将其增加 $k^i$。
- 要么不选择任何元素,直接跳过此次操作。
你可以随时停止操作(不进行任何操作也可以)。
现在,给定 $k$ 的值以及一个目标数组 $a_1,a_2,…,a_n$。
请问,能否通过上述操作,将数组 $v$ 转化为数组 $a$。
输入格式
第一行包含整数 $T$,表示共有 $T$ 组测试数据。
每组数据第一行包含两个整数 $n,k$。
第二行包含 $n$ 个整数 $a_1,a_2,…,a_n$。
输出格式
每组数据输出一行结果,能将数组 $v$ 转化为数组 $a$,则输出 YES,否则输出 NO。
数据范围
对于前三个测试点,$1 \le T \le 5$。
对于全部测试点,$1 \le T \le 1000$,$1 \le n \le 30$,$2 \le k \le 100$,$0 \le a_i \le 10^{16}$。
输入样例:
5
4 100
0 0 0 0
1 2
1
3 4
1 4 1
3 2
0 1 3
3 9
0 59049 810
输出样例:
YES
YES
NO
NO
YES