/*input
5 1
1 2 3 4 5
*/
#include<bits/stdc++.h>
using namespace std;
const int N= 1e5 + 10 ;
#define int long long
#define pii pair<int, int>
#define f first
#define s second
inline pii mp( int a, int b)
{
pii temp; temp.f = a; temp.s = b; return temp;
}
int l, n, arr[ N] ;
bool p( int val)
{
int ct= 1 , cur= arr[ 1 ] ;
if ( cur< val) return false ;
for ( int i= 2 ; i<= n; i++ )
{
cur& = arr[ i] ;
if ( cur< val)
{
ct++ ; cur= arr[ i] ;
}
}
return ( ct<= l) ;
}
signed main( )
{
ios_base:: sync_with_stdio ( false ) ; cin .tie ( NULL ) ; cout .tie ( NULL ) ;
freopen ( "input.txt" , "r" , stdin ) ; freopen ( "output.txt" , "w" , stdout ) ;
cin >> n>> l; int low= 0 , high= 1e9 + 10 ;
for ( int i= 1 ; i<= n; i++ )
{
cin >> arr[ i] ; high= min( high, arr[ i] ) ;
}
while ( low< high)
{
int mid= ( low+ high+ 1 ) / 2 ;
if ( p( mid) )
{
low= mid;
}
else high= mid- 1 ;
}
cout << low;
}
LyppbnB1dAo1IDEKMSAyIDMgNCA1CiovCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOPTFlNSsxMDsKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgcGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgZiBmaXJzdAojZGVmaW5lIHMgc2Vjb25kCmlubGluZSBwaWkgbXAoaW50IGEsIGludCBiKQp7CglwaWkgdGVtcDt0ZW1wLmY9YTt0ZW1wLnM9YjtyZXR1cm4gdGVtcDsKfQppbnQgbCwgbiwgYXJyW05dOwpib29sIHAoaW50IHZhbCkKewoJaW50IGN0PTEsIGN1cj1hcnJbMV07CglpZihjdXI8dmFsKSByZXR1cm4gZmFsc2U7Cglmb3IoaW50IGk9MjtpPD1uO2krKykKCXsKCQljdXImPWFycltpXTsKCQlpZihjdXI8dmFsKQoJCXsKCQkJY3QrKztjdXI9YXJyW2ldOwoJCX0KCX0KCXJldHVybiAoY3Q8PWwpOwp9CnNpZ25lZCBtYWluKCkKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7Y2luLnRpZShOVUxMKTtjb3V0LnRpZShOVUxMKTsKCWZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pO2ZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CgljaW4+Pm4+Pmw7aW50IGxvdz0wLCBoaWdoPTFlOSArIDEwOwoJZm9yKGludCBpPTE7aTw9bjtpKyspCgl7CgkJY2luPj5hcnJbaV07aGlnaD1taW4oaGlnaCwgYXJyW2ldKTsKCX0KCQoJd2hpbGUobG93PGhpZ2gpCgl7CgkJaW50IG1pZD0obG93K2hpZ2grMSkvMjsKCQlpZihwKG1pZCkpCgkJewoJCQlsb3c9bWlkOwoJCX0KCQllbHNlIGhpZ2g9bWlkLTE7Cgl9Cgljb3V0PDxsb3c7Cn0=