#include <bits/stdc++.h>
using namespace std;
#define ld long double
#define F first
#define S second
#define Lnode 2*node+1
#define Rnode 2*node+2
#define MID (l+r>>1)
#define el '\n'
#define coutf(x) for(auto v:(x)) cout<<v<<' '; cout<<el
#define coutp(x) for(auto v:(x)) cout<<v.F<<' '<<v.S<<el
#define cinl(x) for(auto &v:(x)) cin>>v;
#define all(x)  x.begin(),x.end()
#define ll long long
#define sz(x)  (int)x.size()
#define pi pair<ll,ll>
#define pii pair<ll,pair<ll,ll>>
#define vi vector<ll>
using ull = unsigned long long;
const int N=32*200005;
int trie[N][2];
int cnt[N];
int nodecnt;

void prepare() {
    trie[0][0]=trie[0][1]=-1;
    cnt[0]=-1;
    nodecnt=1;
}


ll insert(int n,int idx)
{
   int node=0;
    for (int i=30;i>=0;i--)
    {
        int bit=((n>>i)&1LL);
        if (trie[node][bit]==-1)
        {
            trie[node][bit]=nodecnt;
            trie[nodecnt][0]=trie[nodecnt][1]=-1;
            cnt[nodecnt] = -1;
            nodecnt++;
        }
        node=trie[node][bit];
        cnt[node]=idx;
    }
}


ll mx(ll n,ll k)
{

    int node=0;
    ll num=0;
    for (int i=30;i>=0;i--)
    {
        int bit=((n>>i)&1LL);
        if (trie[node][1^bit]!=-1)
        {
            num|=(1LL<<i);
            node=trie[node][1^bit];
        }
        else if (trie[node][bit]!=-1)node=trie[node][bit];
        else return -1;
        if (num>=k)return cnt[node];

    }

   if (num>=k)
        return cnt[node];
    return -1;

}


void solve()
{
    int n,k;
    cin>>n>>k;
    vector<ll>ar(n);
    for (int i=0;i<n;i++)cin>>ar[i];
    if (k==0)
    {
        cout<<1<<"\n";
        return;
    }
    prepare();
    insert(ar[0],0);
    int ans=INT_MAX;
    for (int i=1;i<n;i++)
    {
        int idx=mx(ar[i],k);


        if (idx!=-1)ans=min(ans,i-idx+1);
        insert(ar[i],i);
    }

    if (ans==INT_MAX)cout<<-1<<"\n";
    else cout<<ans<<"\n";
}




int32_t main()
{
// #ifndef ONLINE_JUDGE
//     freopen("in.txt", "r", stdin);
//     //freopen("output.txt", "w", stdout);
// #endif


    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int tc = 1;
    cin >> tc;
    for (int i = 1; i <= tc; i++)solve();
    return 0;
}
/*
*/