#include using namespace std; typedef long long ll; typedef long double ld; ll n, k; bool b[300005]; bool c[300005][31]; ll po[31]; ll x, ans; sets[31]; int main() { ios_base::sync_with_stdio(false); cin>>n>>k; po[0]=1; for (ll i=1; i<=30; ++i) { po[i]=po[i-1]; po[i]*=2; } for (ll i=1; i<=n; ++i) { b[i]=true; cin>>x; ll j=0; while(x) { if (x%2) s[j].insert(i); ++j; x/=2; } } for (ll i=30; i>=0; --i) { if (s[i].size()>=k) { ans+=po[i]; for (auto z: s[i]) { c[z][i]=true; } for (ll j=1; j<=n; ++j) { if (b[j] && !c[j][i]) { b[j]=false; for (ll p=i-1; p>=0; --p) { s[p].erase(j); } } } } } cout<