#include <iostream>
#include <cstdio>
#include <algorithm>
#include <map>
#define lli long long int
#define s(x) scanf("%lld", &x)
using namespace std;
std::map<lli, lli> prsnt;
std::map<lli, lli> itachi;
lli solve(lli j)
{
//cout << " called for " << j << " ";
if ((itachi.find(j) != itachi.end()) &&(itachi[j] == 0))
return 0;
if (j == 0) {
//cout <<"zerro " <<endl;
return 1;
}
else if ((prsnt.find(j) != prsnt.end()) && (prsnt[j] > 0)) {
--prsnt[j];
// cout << " yo " << endl;
return 1;
} else {
// cout << " hi " << " " <<endl;
lli k,i,ans,a1,a2;
std::map<lli,lli>::iterator iiit;
for (iiit = prsnt.begin(); ((iiit->first <= j/2) && (iiit != prsnt.end())); ++iiit) {
if (iiit->second > 0) {
k = iiit->first;
--iiit->second;
a2 = solve(j-k);
// cout << a2 << endl;
if (a2) {
return 1;
} else {
++iiit->second;
if (itachi.find(iiit->first) != itachi.end()) {
itachi[iiit->first] = 1;
}
}
}
}
itachi[j] = 0;
return 0;
}
}
int main() {
// your code goes here
lli dar,mm,avg,sum,tcase,n,i,j,k,a,b,c,ans,pos,temp;
s(tcase);
while (tcase--) {
prsnt.clear();
itachi.clear();
s(n);
s(temp);
sum = 0;
for (i = 0; i < n; ++i) {
s(j);
if (i == 0)
mm = j;
if (j > 0) {
if (prsnt.find(j) == prsnt.end()) {
prsnt[j] = 1;
}
else {
++prsnt[j];
}
sum = sum + j;
}
if (j > mm)
mm = j;
}
if (sum % temp != 0) {
printf("no\n");
continue;
} else {
avg = sum/temp;
if (avg < mm) {
printf("no\n");
continue;
}
dar = 0;
std::map<lli,lli>::reverse_iterator it,jt;
for (it=prsnt.rbegin(); it!=prsnt.rend(); ++it) {
while (it->second > 0) {
--it->second;
i = solve(avg - it->first);
if (i != 1){
++dar;
break;
}
}
if (dar > 0)
break;
}
for (it=prsnt.rbegin(); it!=prsnt.rend(); ++it) {
while (it->second > 0) {
--it->second;
i = solve(avg - it->first);
if (i != 1){
++dar;
break;
}
}
if (dar > 0)
break;
}
if (dar > 0)
printf("no\n");
else
printf("yes\n");
}
}
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxjc3RkaW8+CiAgICAjaW5jbHVkZSA8YWxnb3JpdGhtPgogICAgI2luY2x1ZGUgPG1hcD4KICAgICNkZWZpbmUgbGxpIGxvbmcgbG9uZyBpbnQKICAgICNkZWZpbmUgcyh4KSBzY2FuZigiJWxsZCIsICZ4KQogICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAgIHN0ZDo6bWFwPGxsaSwgbGxpPiBwcnNudDsKICAgIHN0ZDo6bWFwPGxsaSwgbGxpPiBpdGFjaGk7CiAgICBsbGkgc29sdmUobGxpIGopCiAgICB7CiAgICAvL2NvdXQgPDwgIiBjYWxsZWQgZm9yICIgPDwgaiA8PCAiICI7CiAgICBpZiAoKGl0YWNoaS5maW5kKGopICE9IGl0YWNoaS5lbmQoKSkgJiYoaXRhY2hpW2pdID09IDApKQogICAgcmV0dXJuIDA7CiAgICBpZiAoaiA9PSAwKSB7CiAgICAvL2NvdXQgPDwiemVycm8gIiA8PGVuZGw7CiAgICByZXR1cm4gMTsKICAgIH0KICAgIGVsc2UgaWYgKChwcnNudC5maW5kKGopICE9IHByc250LmVuZCgpKSAmJiAocHJzbnRbal0gPiAwKSkgewogICAgLS1wcnNudFtqXTsKICAgIC8vIGNvdXQgPDwgIiB5byAiIDw8IGVuZGw7CiAgICByZXR1cm4gMTsKICAgIH0gZWxzZSB7CiAgICAvLyBjb3V0IDw8ICIgaGkgIiA8PCAiICIgPDxlbmRsOwogICAgbGxpIGssaSxhbnMsYTEsYTI7CiAgICBzdGQ6Om1hcDxsbGksbGxpPjo6aXRlcmF0b3IgaWlpdDsKICAgIGZvciAoaWlpdCA9IHByc250LmJlZ2luKCk7ICgoaWlpdC0+Zmlyc3QgPD0gai8yKSAmJiAoaWlpdCAhPSBwcnNudC5lbmQoKSkpOyArK2lpaXQpIHsKICAgIGlmIChpaWl0LT5zZWNvbmQgPiAwKSB7CiAgICBrID0gaWlpdC0+Zmlyc3Q7CiAgICAtLWlpaXQtPnNlY29uZDsKICAgIGEyID0gc29sdmUoai1rKTsKICAgIC8vIGNvdXQgPDwgYTIgPDwgZW5kbDsKICAgIGlmIChhMikgewogICAgcmV0dXJuIDE7CiAgICB9IGVsc2UgewogICAgKytpaWl0LT5zZWNvbmQ7CiAgICBpZiAoaXRhY2hpLmZpbmQoaWlpdC0+Zmlyc3QpICE9IGl0YWNoaS5lbmQoKSkgewogICAgaXRhY2hpW2lpaXQtPmZpcnN0XSA9IDE7CiAgICB9CiAgICB9CiAgICB9CiAgICB9CiAgICBpdGFjaGlbal0gPSAwOwogICAgcmV0dXJuIDA7CiAgICB9CiAgICB9CiAgICBpbnQgbWFpbigpIHsKICAgIC8vIHlvdXIgY29kZSBnb2VzIGhlcmUKICAgIGxsaSBkYXIsbW0sYXZnLHN1bSx0Y2FzZSxuLGksaixrLGEsYixjLGFucyxwb3MsdGVtcDsKICAgIHModGNhc2UpOwogICAgd2hpbGUgKHRjYXNlLS0pIHsKICAgIHByc250LmNsZWFyKCk7CiAgICBpdGFjaGkuY2xlYXIoKTsKICAgIHMobik7CiAgICBzKHRlbXApOwogICAgc3VtID0gMDsKICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgIHMoaik7CiAgICBpZiAoaSA9PSAwKQogICAgbW0gPSBqOwogICAgaWYgKGogPiAwKSB7CiAgICBpZiAocHJzbnQuZmluZChqKSA9PSBwcnNudC5lbmQoKSkgewogICAgcHJzbnRbal0gPSAxOwogICAgfQogICAgZWxzZSB7CiAgICArK3Byc250W2pdOwogICAgfQogICAgc3VtID0gc3VtICsgajsKICAgIH0KICAgIGlmIChqID4gbW0pCiAgICBtbSA9IGo7CiAgICB9CiAgICBpZiAoc3VtICUgdGVtcCAhPSAwKSB7CiAgICBwcmludGYoIm5vXG4iKTsKICAgIGNvbnRpbnVlOwogICAgfSBlbHNlIHsKICAgIGF2ZyA9IHN1bS90ZW1wOwogICAgaWYgKGF2ZyA8IG1tKSB7CiAgICBwcmludGYoIm5vXG4iKTsKICAgIGNvbnRpbnVlOwogICAgfQogICAgZGFyID0gMDsKICAgIHN0ZDo6bWFwPGxsaSxsbGk+OjpyZXZlcnNlX2l0ZXJhdG9yIGl0LGp0OwogICAgZm9yIChpdD1wcnNudC5yYmVnaW4oKTsgaXQhPXByc250LnJlbmQoKTsgKytpdCkgewogICAgd2hpbGUgKGl0LT5zZWNvbmQgPiAwKSB7CiAgICAtLWl0LT5zZWNvbmQ7CiAgICBpID0gc29sdmUoYXZnIC0gaXQtPmZpcnN0KTsKICAgIGlmIChpICE9IDEpewogICAgKytkYXI7CiAgICBicmVhazsKICAgIH0KICAgIH0KICAgIGlmIChkYXIgPiAwKQogICAgYnJlYWs7CiAgICB9CiAgICBmb3IgKGl0PXByc250LnJiZWdpbigpOyBpdCE9cHJzbnQucmVuZCgpOyArK2l0KSB7CiAgICB3aGlsZSAoaXQtPnNlY29uZCA+IDApIHsKICAgIC0taXQtPnNlY29uZDsKICAgIGkgPSBzb2x2ZShhdmcgLSBpdC0+Zmlyc3QpOwogICAgaWYgKGkgIT0gMSl7CiAgICArK2RhcjsKICAgIGJyZWFrOwogICAgfQogICAgfQogICAgaWYgKGRhciA+IDApCiAgICBicmVhazsKICAgIH0KICAgIGlmIChkYXIgPiAwKQogICAgcHJpbnRmKCJub1xuIik7CiAgICBlbHNlCiAgICBwcmludGYoInllc1xuIik7CiAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKICAgIH0g