#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';
	}
}