#include "bits/stdc++.h"
// #pragma GCC optimize("O3,unroll-loops")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
using ll = long long int;
mt19937_64 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
int main()
{
ios::sync_with_stdio(false); cin.tie(0);
int t; cin >> t;
while (t--) {
int n, k; cin >> n >> k;
vector<int> a(n);
for (int &x : a) cin >> x;
vector<int> b(n+1);
for (int i = 1; i <= n; ++i) b[i] = a[i-1] ^ b[i-1];
int mask = INT_MAX, ans = n+1;
auto calc = [&] (int target) {
int pref = 0;
map<int, int> last;
last[0] = 0;
for (int i = 0; i < n; ++i) {
int x = a[i]&mask;
pref ^= x;
if (last.find(target^pref) != last.end()) ans = min(ans, i+1-last[target^pref]);
last[pref] = i+1;
}
};
calc(k);
mask = 0;
for (int bit = 30; bit >= 0; --bit) {
mask += 1<<bit;
if ((k>>bit)&1) continue;
int target = k&mask; target |= 1<<bit;
calc(target);
}
if (ans == n+1) ans = -1;
cout << ans << '\n';
}
}