#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
using namespace std;
// #define int long long
#define fi first
#define se second
#define siz(x) (int)(x.size())
const int maxN=2e5+5;
int lg2(const int &x){return 31 - __builtin_clz(x);}
int n, k, m, cur_trie=0, mx[maxN], nxt[maxN][2], a[maxN];
void add(int s, int id)
{
int last_id=0;
for(int i=lg2(s); i>=0; i-=1)
{
int xet=(1<<i)&s; if(xet) xet=1;
if(nxt[last_id][xet]==-1)
{
cur_trie++;
nxt[last_id][xet]=cur_trie;
}
mx[nxt[last_id][xet]]=max(id, mx[nxt[last_id][xet]]);
last_id=nxt[last_id][xet];
}
}
int query(int s)
{
int last_id=0, res=-1;
for(int i=lg2(k); i>=0; i-=1)
{
int xet=(1<<i)&s, xet_k=(1<<i)&k;
if(xet) xet=1;
if(xet_k) xet_k=1;
if(xet_k)
{
last_id=nxt[last_id][xet^1];
}
else
{
if(nxt[last_id][xet^1]!=-1) res=max(res, mx[nxt[last_id][xet^1]]);
last_id=nxt[last_id][xet];
}
if(last_id==-1)
{
return res;
}
}
return res;
}
void solve()
{
int ans = -1;
for(int i=1; i<=n; i+=1)
{
add(a[i], i);
if(query(a[i])==-1) continue;
else ans=max(ans, i-query(a[i])+1);
}
cout<<ans<<'\n';
}
int32_t main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
int test = 1;
cin>>test;
while(test--)
{
cin>>n>>k;
cur_trie = 0;
for(int i=0; i<=n*30; i+=1) nxt[i][1]=nxt[i][0]=-1, mx[i]=-1;
for(int i=1; i<=n; i+=1) cin>>a[i];
solve();
}
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0IikKI3ByYWdtYSBHQ0Mgb3B0aW1pemUoInVucm9sbC1sb29wcyIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vICNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgc2l6KHgpIChpbnQpKHguc2l6ZSgpKQpjb25zdCBpbnQgbWF4Tj0yZTUrNTsKaW50IGxnMihjb25zdCBpbnQgJngpe3JldHVybiAzMSAtIF9fYnVpbHRpbl9jbHooeCk7fQoKaW50IG4sIGssIG0sIGN1cl90cmllPTAsIG14W21heE5dLCBueHRbbWF4Tl1bMl0sIGFbbWF4Tl07Cgp2b2lkIGFkZChpbnQgcywgaW50IGlkKQp7CiAgICBpbnQgbGFzdF9pZD0wOwogICAgZm9yKGludCBpPWxnMihzKTsgaT49MDsgaS09MSkKICAgIHsKICAgICAgICBpbnQgeGV0PSgxPDxpKSZzOyBpZih4ZXQpIHhldD0xOwogICAgICAgIGlmKG54dFtsYXN0X2lkXVt4ZXRdPT0tMSkKICAgICAgICB7CiAgICAgICAgICAgIGN1cl90cmllKys7CiAgICAgICAgICAgIG54dFtsYXN0X2lkXVt4ZXRdPWN1cl90cmllOwogICAgICAgIH0KICAgICAgICBteFtueHRbbGFzdF9pZF1beGV0XV09bWF4KGlkLCBteFtueHRbbGFzdF9pZF1beGV0XV0pOwogICAgICAgIGxhc3RfaWQ9bnh0W2xhc3RfaWRdW3hldF07CiAgICB9Cn0KCmludCBxdWVyeShpbnQgcykKewogICAgaW50IGxhc3RfaWQ9MCwgcmVzPS0xOwogICAgZm9yKGludCBpPWxnMihrKTsgaT49MDsgaS09MSkKICAgIHsKICAgICAgICBpbnQgeGV0PSgxPDxpKSZzLCB4ZXRfaz0oMTw8aSkmazsKICAgICAgICBpZih4ZXQpIHhldD0xOwogICAgICAgIGlmKHhldF9rKSB4ZXRfaz0xOwogICAgICAgIGlmKHhldF9rKQogICAgICAgIHsKICAgICAgICAgICAgbGFzdF9pZD1ueHRbbGFzdF9pZF1beGV0XjFdOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBpZihueHRbbGFzdF9pZF1beGV0XjFdIT0tMSkgcmVzPW1heChyZXMsIG14W254dFtsYXN0X2lkXVt4ZXReMV1dKTsKICAgICAgICAgICAgbGFzdF9pZD1ueHRbbGFzdF9pZF1beGV0XTsKICAgICAgICB9CiAgICAgICAgaWYobGFzdF9pZD09LTEpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gcmVzOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXM7Cn0KCnZvaWQgc29sdmUoKQp7CiAgICBpbnQgYW5zID0gLTE7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSs9MSkKICAgIHsKICAgICAgICBhZGQoYVtpXSwgaSk7CiAgICAgICAgaWYocXVlcnkoYVtpXSk9PS0xKSBjb250aW51ZTsKICAgICAgICBlbHNlIGFucz1tYXgoYW5zLCBpLXF1ZXJ5KGFbaV0pKzEpOwogICAgfQogICAgY291dDw8YW5zPDwnXG4nOwp9CgppbnQzMl90IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOwogICAgaW50IHRlc3QgPSAxOwogICAgY2luPj50ZXN0OwogICAgd2hpbGUodGVzdC0tKQogICAgewogICAgICAgIGNpbj4+bj4+azsKICAgICAgICBjdXJfdHJpZSA9IDA7CiAgICAgICAgZm9yKGludCBpPTA7IGk8PW4qMzA7IGkrPTEpIG54dFtpXVsxXT1ueHRbaV1bMF09LTEsIG14W2ldPS0xOwogICAgICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKz0xKSBjaW4+PmFbaV07CiAgICAgICAgc29sdmUoKTsKICAgIH0KfQ==