#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n,k;
    cin>>n>>k;
    int a[n][31]={};
    bool mne[n];
    for(int i=0;i<n;i++)
    {
        int x;
        mne[i]=true;
        cin>>x;
        int c=0;
        while(x!=0)
        {
            a[i][c]=x%2;
            x/=2;
        }
    }
    vector<int> v[31];
    int bol[30]={};
    int brr=0;
    for(int j=0;j<n;j++)
    {
        if(a[j][30]==1)
        {
            v[30].push_back(j);
        }
    }
    if(v[30].size()>=k-1)
    {
        bol[30]=true;
    }
    for(int i=29;i>=0;i--)
    {
        int curv[31]={};
        bool boll=false;
        int prev=0;
        vector<int> nv;
        int wit[31]=0;
        for(int j=0;j<n;j++)
        {
            if(a[j][i]==1)
            {
                v[i].push_back(j);
            }
        }
        if(v[i].size()>=k)
        {
            bol[i]=true;
        }
    }
    int prefbr[n+1][31]={};
    int grea=0;
    int boll[n]={};
    for(int j=30;j>=0;j--)
    {
        if(bol[j])
        {
            grea=j;
            break;
        }
    }
    boll[grea]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=0;j<31;j++)
        {
            prefbr[i][j]=prefbr[i-1][j]+a[i-1][j];
        }
    }
    int brbez=0;
    vector<int> vv;
    vv.push_back(grea);
    
    for(int i=grea-1;i>=0;i--)
    {
        if(!bol[i])
        {
            continue;
        }
        for(int j=0;j<vv.size();j++)
        {
            vector<int> nv;
            for()
        }
    }
    return 0;
}