#include "bits/stdc++.h"
using namespace std;
using ll = long long;
using pii = pair <int, int>;
using pll = pair <ll, ll>;
#define FIO() ios_base::sync_with_stdio(0);cin.tie(NULL);
const int mx = 1e5 + 9;
ll a[mx];
vector <int> perm_list[mx];
vector <int> perm[mx];
int main() {
FIO();
int tc; cin >> tc;
while (tc--) {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 0; i < m; i++) perm_list[i].clear();
vector <int> p;
for (int i = 2; i <= n; i++) p.push_back(i);
int sz = p.size();
int cnt = 0;
bool ok = false;
do {
ll cost = 0;
for (int i = 1; i < sz; i++) {
cost += (a[p[i]] ^ a[p[i - 1]]);
cost %= m;
}
cost += (a[p.back()] ^ a[1]);
cost += (a[p[0]] ^ a[1]);
cost %= m;
perm[cnt].clear();
perm[cnt].push_back(1);
for (int x : p) perm[cnt].push_back(x);
perm[cnt].push_back(1);
perm_list[cost].push_back(cnt);
cnt++;
if (perm_list[cost].size() == 3) {
cout << "Yes\n";
for (int idx : perm_list[cost]) {
for (int x : perm[idx]) {
cout << x << " ";
}
cout << '\n';
}
ok = true;
break;
}
} while (next_permutation(p.begin(), p.end()));
if (!ok) cout << "No\n";
}
}
I2luY2x1ZGUgImJpdHMvc3RkYysrLmgiCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdXNpbmcgbGwgPSBsb25nIGxvbmc7CnVzaW5nIHBpaSA9IHBhaXIgPGludCwgaW50PjsKdXNpbmcgcGxsID0gcGFpciA8bGwsIGxsPjsKCiNkZWZpbmUgRklPKCkgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKE5VTEwpOwoKY29uc3QgaW50IG14ID0gMWU1ICsgOTsKCmxsIGFbbXhdOwp2ZWN0b3IgPGludD4gcGVybV9saXN0W214XTsKdmVjdG9yIDxpbnQ+IHBlcm1bbXhdOwoKaW50IG1haW4oKSB7CiAgICBGSU8oKTsKCiAgICBpbnQgdGM7IGNpbiA+PiB0YzsKICAgIHdoaWxlICh0Yy0tKSB7CiAgICAgICAgaW50IG4sIG07CiAgICAgICAgY2luID4+IG4gPj4gbTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIH0KCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHBlcm1fbGlzdFtpXS5jbGVhcigpOwoKICAgICAgICB2ZWN0b3IgPGludD4gcDsKICAgICAgICBmb3IgKGludCBpID0gMjsgaSA8PSBuOyBpKyspIHAucHVzaF9iYWNrKGkpOwoKICAgICAgICBpbnQgc3ogPSBwLnNpemUoKTsKICAgICAgICBpbnQgY250ID0gMDsKICAgICAgICBib29sIG9rID0gZmFsc2U7CgogICAgICAgIGRvIHsKICAgICAgICAgICAgbGwgY29zdCA9IDA7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc3o7IGkrKykgewogICAgICAgICAgICAgICAgY29zdCArPSAoYVtwW2ldXSBeIGFbcFtpIC0gMV1dKTsKICAgICAgICAgICAgICAgIGNvc3QgJT0gbTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29zdCArPSAoYVtwLmJhY2soKV0gXiBhWzFdKTsKICAgICAgICAgICAgY29zdCArPSAoYVtwWzBdXSBeIGFbMV0pOwogICAgICAgICAgICBjb3N0ICU9IG07CgogICAgICAgICAgICBwZXJtW2NudF0uY2xlYXIoKTsKCiAgICAgICAgICAgIHBlcm1bY250XS5wdXNoX2JhY2soMSk7CiAgICAgICAgICAgIGZvciAoaW50IHggOiBwKSBwZXJtW2NudF0ucHVzaF9iYWNrKHgpOwogICAgICAgICAgICBwZXJtW2NudF0ucHVzaF9iYWNrKDEpOwoKICAgICAgICAgICAgcGVybV9saXN0W2Nvc3RdLnB1c2hfYmFjayhjbnQpOwoKICAgICAgICAgICAgY250Kys7CgogICAgICAgICAgICBpZiAocGVybV9saXN0W2Nvc3RdLnNpemUoKSA9PSAzKSB7CiAgICAgICAgICAgICAgICBjb3V0IDw8ICJZZXNcbiI7CiAgICAgICAgICAgICAgICBmb3IgKGludCBpZHggOiBwZXJtX2xpc3RbY29zdF0pIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKGludCB4IDogcGVybVtpZHhdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgeCA8PCAiICI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgJ1xuJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBvayA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICB9IHdoaWxlIChuZXh0X3Blcm11dGF0aW9uKHAuYmVnaW4oKSwgcC5lbmQoKSkpOwoKICAgICAgICBpZiAoIW9rKSBjb3V0IDw8ICJOb1xuIjsKICAgIH0KfQo=