#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
#define all(x) (x).begin(), (x).end()
#define int long long
const int MAXN = 3 * (int)1e6 + 5;
int a[MAXN];
vector<int> last(64);
void solve() {
int n, x;
cin >> n >> x;
int ans = -1;
int g = 0;
for (int i = 0; i < n; i++) {
cin >> a[i];
g |= a[i];
if (a[i] >= x) {
ans = 1;
}
}
if (ans == 1) {
cout << ans << endl;
return;
}
if (g < x) {
cout << -1 << endl;
return;
}
fill(all(last), -1);
ans = INT_MAX;
int msb = 63 - __builtin_clzll(x);
for (int r = 0; r < n; ++r) {
for (int b = 0; b <= msb; b++) {
if (a[r] & (1ll << b)) {
last[b] = r;
}
}
int earliest = 1e18;
int ok = true;
for (int b = msb; b >= 0; b--) {
if (x & (1ll << b)) {
if (last[b] == -1) {
ok = false;
break;
}
earliest = min(earliest, last[b]);
} else {
if (last[b] != -1) {
ans = min(ans, r - min(earliest, last[b]) + 1);
}
}
}
if (ok) {
ans = min(ans, r - earliest + 1);
}
}
cout << ans << endl;
return;
}
int32_t main() {
ios::sync_with_stdio(0);
cin.tie(0);
int TET = 1;
cin >> TET;
while (TET--) {
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZW5kbCAnXG4nOwojZGVmaW5lIGFsbCh4KSAoeCkuYmVnaW4oKSwgKHgpLmVuZCgpCiNkZWZpbmUgaW50IGxvbmcgbG9uZwoKY29uc3QgaW50IE1BWE4gPSAzICogKGludCkxZTYgKyA1OwoKaW50IGFbTUFYTl07CnZlY3RvcjxpbnQ+IGxhc3QoNjQpOwoKdm9pZCBzb2x2ZSgpIHsKICBpbnQgbiwgeDsKICBjaW4gPj4gbiA+PiB4OwogIGludCBhbnMgPSAtMTsKCiAgaW50IGcgPSAwOwogIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICBjaW4gPj4gYVtpXTsKICAgIGcgfD0gYVtpXTsKICAgIGlmIChhW2ldID49IHgpIHsKICAgICAgYW5zID0gMTsKICAgIH0KICB9CiAgaWYgKGFucyA9PSAxKSB7CiAgICBjb3V0IDw8IGFucyA8PCBlbmRsOwogICAgcmV0dXJuOwogIH0KICBpZiAoZyA8IHgpIHsKICAgIGNvdXQgPDwgLTEgPDwgZW5kbDsKICAgIHJldHVybjsKICB9CgogIGZpbGwoYWxsKGxhc3QpLCAtMSk7CgogIGFucyA9IElOVF9NQVg7CgogIGludCBtc2IgPSA2MyAtIF9fYnVpbHRpbl9jbHpsbCh4KTsKCiAgZm9yIChpbnQgciA9IDA7IHIgPCBuOyArK3IpIHsKICAgIGZvciAoaW50IGIgPSAwOyBiIDw9IG1zYjsgYisrKSB7CiAgICAgIGlmIChhW3JdICYgKDFsbCA8PCBiKSkgewogICAgICAgIGxhc3RbYl0gPSByOwogICAgICB9CiAgICB9CgogICAgaW50IGVhcmxpZXN0ID0gMWUxODsKICAgIGludCBvayA9IHRydWU7CgogICAgZm9yIChpbnQgYiA9IG1zYjsgYiA+PSAwOyBiLS0pIHsKICAgICAgaWYgKHggJiAoMWxsIDw8IGIpKSB7CiAgICAgICAgaWYgKGxhc3RbYl0gPT0gLTEpIHsKICAgICAgICAgIG9rID0gZmFsc2U7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgZWFybGllc3QgPSBtaW4oZWFybGllc3QsIGxhc3RbYl0pOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChsYXN0W2JdICE9IC0xKSB7CiAgICAgICAgICBhbnMgPSBtaW4oYW5zLCByIC0gbWluKGVhcmxpZXN0LCBsYXN0W2JdKSArIDEpOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIGlmIChvaykgewogICAgICBhbnMgPSBtaW4oYW5zLCByIC0gZWFybGllc3QgKyAxKTsKICAgIH0KICB9CiAgY291dCA8PCBhbnMgPDwgZW5kbDsKICByZXR1cm47Cn0KCmludDMyX3QgbWFpbigpIHsKICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICBjaW4udGllKDApOwoKICBpbnQgVEVUID0gMTsKICBjaW4gPj4gVEVUOwoKICB3aGlsZSAoVEVULS0pIHsKICAgIHNvbHZlKCk7CiAgfQp9Cg==