#include <iostream>
#include <bitset>
using namespace std;
int v[1000005], n, k;
bool check( int val ){
    int i, grupe, or_sum;
    grupe = i = 0;
    while( i < n ){
        or_sum = 0;
        while( i < n && ( or_sum & val ) != val ){
            or_sum |= v[i];
            ///cout << i << ' ' << or_sum << ' ' << val << '\n';
            i++;
        }
        if( ( or_sum & val ) == val ){
            grupe++;
        }
    }
    if( grupe < k ){
        return false;
    }
    return true;
}
int main(){
    int  i, max_val, x, ras;
    ios::sync_with_stdio( false );
    cin.tie( 0 );
    cout.tie( 0 );
    cin >> n >> k;
    max_val = 0;
    for( i = 0; i < n; i++ ){
        cin >> v[i];
        max_val = max( v[i], max_val );
    }
    x = 1;
    while( max_val > 0 ){
        max_val /= 2;
        x *= 2;
    }
    ras = 0;
    for( i = 1; i <= x; i++ ){
        if( check( i ) == true ){
            ras = i;
        }
    }
    cout << ras;
    return 0;
}
