3727. 乘方相加

给定一个长度为 $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