Problem5817--乘方相加

5817: 乘方相加

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

给定一个长度为 $n$ 的数组 $v_1,\ v_2,\ \dots,\ v_n$。
初始时,数组中的所有元素都为 $0$。
接下来,可以对该数组进行若干次如下操作------对于第 $i$ 次操作($i$ 从 $0$ 开始),你可以:
  • 要么选择其中一个元素 $v_{pos}$,将其增加 $k^i$。
  • 要么不选择任何元素,直接跳过此次操作。
你可以随时停止操作(不进行任何操作也可以)。
现在,给定 $k$ 的值以及一个目标数组 $a_1,\ a_2,\ …,\ a_n$。
请问,能否通过上述操作,将数组 $v$ 转化为数组 $a$。

Input

第一行包含整数 $T$,表示共有 $T$ 组测试数据。
每组数据第一行包含两个整数 $n,\ k$。
第二行包含 $n$ 个整数 $a_1,\ a_2,\ …,\ a_n$。

Output

每组数据输出一行结果,能将数组 $v$ 转化为数组 $a$,则输出 YES,否则输出 NO。

Constraints

对于前三个测试点,$1≤T≤5$。
对于全部测试点,$1≤T≤1000,\ 1≤n≤30,\ 2≤k≤100,\ 0≤a_i≤10^{16}$。

Sample 1 Input

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

Sample 1 Output

YES
YES
NO
NO
YES

Source/Category