#include <stdio.h>
#include <bitset>
#define MAX_VAL 10000000000000000
#define MAX_EXPONENT 16 * 4 //log 2 (10^16)
typedef long long llong;
using namespace std;
int main (void) {
bitset<MAX_EXPONENT> exponents;
int t, k, exponent;
llong temp, aux;
size_t n;
bool possible;
scanf ("%d", &t);
while (t--) {
possible = true;
scanf ("%d%d", &n, &k);
//read numbers
for (int i = 0; i < n; i++) {
scanf ("%ld", &temp);
if (possible) {
//get exponents of k
while (temp != 0) {
aux = 1;
exponent = 0;
while (aux * k <= temp) {
aux *= k;
exponent++;
}
if (exponents.test(exponent)) {
possible = false;
break;
}
exponents.set(exponent);
temp -= aux;
}
}
}
getchar();
printf(possible ? "YES" : "NO");
printf("\n");
exponents.reset();
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxiaXRzZXQ+CiNkZWZpbmUgTUFYX1ZBTCAxMDAwMDAwMDAwMDAwMDAwMAojZGVmaW5lIE1BWF9FWFBPTkVOVCAxNiAqIDQgLy9sb2cgMiAoMTBeMTYpCgp0eXBlZGVmIGxvbmcgbG9uZyBsbG9uZzsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbiAodm9pZCkgewogIGJpdHNldDxNQVhfRVhQT05FTlQ+IGV4cG9uZW50czsKICBpbnQgdCwgaywgZXhwb25lbnQ7CiAgbGxvbmcgdGVtcCwgYXV4OwogIHNpemVfdCBuOwogIGJvb2wgcG9zc2libGU7CiAgc2NhbmYgKCIlZCIsICZ0KTsKICB3aGlsZSAodC0tKSB7CiAgICBwb3NzaWJsZSA9IHRydWU7CiAgICBzY2FuZiAoIiVkJWQiLCAmbiwgJmspOwogICAgLy9yZWFkIG51bWJlcnMKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgIHNjYW5mICgiJWxkIiwgJnRlbXApOwogICAgICBpZiAocG9zc2libGUpIHsKICAgICAgICAvL2dldCBleHBvbmVudHMgb2YgawogICAgICAgIHdoaWxlICh0ZW1wICE9IDApIHsKICAgICAgICAgIGF1eCA9IDE7CiAgICAgICAgICBleHBvbmVudCA9IDA7CiAgICAgICAgICB3aGlsZSAoYXV4ICogayA8PSB0ZW1wKSB7CiAgICAgICAgICAgIGF1eCAqPSBrOwogICAgICAgICAgICBleHBvbmVudCsrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGV4cG9uZW50cy50ZXN0KGV4cG9uZW50KSkgewogICAgICAgICAgICBwb3NzaWJsZSA9IGZhbHNlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGV4cG9uZW50cy5zZXQoZXhwb25lbnQpOwogICAgICAgICAgdGVtcCAtPSBhdXg7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBnZXRjaGFyKCk7CiAgICBwcmludGYocG9zc2libGUgPyAiWUVTIiA6ICJOTyIpOwogICAgcHJpbnRmKCJcbiIpOwogICAgZXhwb25lbnRzLnJlc2V0KCk7CiAgfQogIHJldHVybiAwOwp9CiA=