CF1312C Adding Powers

Description

Suppose you are performing the following algorithm. There is an array $ v_1, v_2, \dots, v_n $ filled with zeroes at start. The following operation is applied to the array several times — at $ i $ -th step ( $ 0 $ -indexed) you can: - either choose position $ pos $ ( $ 1 \le pos \le n $ ) and increase $ v_{pos} $ by $ k^i $ ; - or not choose any position and skip this step. You can choose how the algorithm would behave on each step and when to stop it. The question is: can you make array $ v $ equal to the given array $ a $ ( $ v_j = a_j $ for each $ j $ ) after some step?

Input Format

The first line contains one integer $ T $ ( $ 1 \le T \le 1000 $ ) — the number of test cases. Next $ 2T $ lines contain test cases — two lines per test case. The first line of each test case contains two integers $ n $ and $ k $ ( $ 1 \le n \le 30 $ , $ 2 \le k \le 100 $ ) — the size of arrays $ v $ and $ a $ and value $ k $ used in the algorithm. The second line contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 0 \le a_i \le 10^{16} $ ) — the array you'd like to achieve.

Output Format

For each test case print YES (case insensitive) if you can achieve the array $ a $ after some step or NO (case insensitive) otherwise.

Explanation/Hint

In the first test case, you can stop the algorithm before the $ 0 $ -th step, or don't choose any position several times and stop the algorithm. In the second test case, you can add $ k^0 $ to $ v_1 $ and stop the algorithm. In the third test case, you can't make two $ 1 $ in the array $ v $ . In the fifth test case, you can skip $ 9^0 $ and $ 9^1 $ , then add $ 9^2 $ and $ 9^3 $ to $ v_3 $ , skip $ 9^4 $ and finally, add $ 9^5 $ to $ v_2 $ .