#include<bits/stdc++.h>
using namespace std;
#define N 10000000
int i,j,k,n,m,t,f[N+50],mp[N+50][2],it,res,cur,a;
#define P(X) mp[cur][k^X]
int main(){
cin>>t;
while(t--){
res=1e9; it=0;
cin>>n>>m;
for(i=n;i>=1;i--){
cin>>a;
for(cur=0,j=30;j>=0;f[cur=P(0)]=i,j--){
k=(a>>j)%2; if(!P(0))P(0)=++it;
}
for(cur=0,j=30;j>=0;j--){
k=(a>>j)%2;
if(!((m>>j)%2)){
if(P(1))res=min(res,f[P(1)]-i+1);
k^=1;
}
cur=P(1);if(!cur)break;
}
if(cur)res=min(res,f[cur]-i+1);
}
memset(mp,0,it*8+50); memset(f,0x3f,it*4+50);
cout<<(res>n?-1:res)<<'\n';
}
}