B. 乘方相加

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

给定一个长度为 n 的数组 v1,v2,…,vn。

初始时,数组中的所有元素都为 0。

接下来,可以对该数组进行若干次如下操作------对于第 i 次操作(i 从 0 开始),你可以:

  • 要么选择其中一个元素 v_{pos} ,将其增加 k^i
  • 要么不选择任何元素,直接跳过此次操作。

你可以随时停止操作(不进行任何操作也可以)。

现在,给定 k 的值以及一个目标数组 a1,a2,…,an。

请问,能否通过上述操作,将数组 v 转化为数组 a。

输入格式

第一行包含整数 T,表示共有 T 组测试数据。

每组数据第一行包含两个整数 n,k。

第二行包含 n 个整数 a1,a2,…,an。

输出格式

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

样例

输入样例:

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

数据范围与提示

对于前三个测试点,1≤T≤5。

对于全部测试点,1≤T≤1000,1≤n≤30,2≤k≤100,0≤ai≤10^16。