#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) {
int n;
ll x;
cin >> n >> x;
vector<ll> a(n);
for (int i = 0; i < n; i++)
cin >> a[i];
// cnt[k] = how many elements in [l..r] have bit k set
int cnt[64] = {};
ll curr_or = 0;
int ans = INT_MAX;
int l = 0;
for (int r = 0; r < n; r++) {
// add a[r]
ll v = a[r];
while (v) {
int b = __builtin_ctzll(v);
if (cnt[b]++ == 0)
curr_or |= (1LL << b);
v &= v - 1;
}
// try to shrink from left
while (l <= r && curr_or >= x) {
ans = min(ans, r - l + 1);
// remove a[l]
ll w = a[l++];
while (w) {
int b = __builtin_ctzll(w);
if (--cnt[b] == 0)
curr_or &= ~(1LL << b);
w &= w - 1;
}
}
}
cout << (ans == INT_MAX ? -1 : ans) << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKaW50IG1haW4oKSB7CiAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogIGNpbi50aWUobnVsbHB0cik7CgogIGludCBUOwogIGNpbiA+PiBUOwogIHdoaWxlIChULS0pIHsKICAgIGludCBuOwogICAgbGwgeDsKICAgIGNpbiA+PiBuID4+IHg7CiAgICB2ZWN0b3I8bGw+IGEobik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgY2luID4+IGFbaV07CgogICAgLy8gY250W2tdID0gaG93IG1hbnkgZWxlbWVudHMgaW4gW2wuLnJdIGhhdmUgYml0IGsgc2V0CiAgICBpbnQgY250WzY0XSA9IHt9OwogICAgbGwgY3Vycl9vciA9IDA7CiAgICBpbnQgYW5zID0gSU5UX01BWDsKICAgIGludCBsID0gMDsKCiAgICBmb3IgKGludCByID0gMDsgciA8IG47IHIrKykgewogICAgICAvLyBhZGQgYVtyXQogICAgICBsbCB2ID0gYVtyXTsKICAgICAgd2hpbGUgKHYpIHsKICAgICAgICBpbnQgYiA9IF9fYnVpbHRpbl9jdHpsbCh2KTsKICAgICAgICBpZiAoY250W2JdKysgPT0gMCkKICAgICAgICAgIGN1cnJfb3IgfD0gKDFMTCA8PCBiKTsKICAgICAgICB2ICY9IHYgLSAxOwogICAgICB9CiAgICAgIC8vIHRyeSB0byBzaHJpbmsgZnJvbSBsZWZ0CiAgICAgIHdoaWxlIChsIDw9IHIgJiYgY3Vycl9vciA+PSB4KSB7CiAgICAgICAgYW5zID0gbWluKGFucywgciAtIGwgKyAxKTsKICAgICAgICAvLyByZW1vdmUgYVtsXQogICAgICAgIGxsIHcgPSBhW2wrK107CiAgICAgICAgd2hpbGUgKHcpIHsKICAgICAgICAgIGludCBiID0gX19idWlsdGluX2N0emxsKHcpOwogICAgICAgICAgaWYgKC0tY250W2JdID09IDApCiAgICAgICAgICAgIGN1cnJfb3IgJj0gfigxTEwgPDwgYik7CiAgICAgICAgICB3ICY9IHcgLSAxOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgKGFucyA9PSBJTlRfTUFYID8gLTEgOiBhbnMpIDw8ICJcbiI7CiAgfQogIHJldHVybiAwOwp9Cg==