#include<bits/stdc++.h>
using namespace std;

vector<int> v;
int interval(int l, int r){
    int ans=v[l];
    for(int i=l+1; i<=r; i++){
        ans|=v[i];
    }
    //cout<<ans<<' ';
    return ans;
}
int ansi(vector<int> where){
    int ans=0;
    for(int i=0; i<where.size(); i++){
        //cout<<67;
        if(i==0){
            int smetka=interval(0,where[i]);
            ans=smetka;
        }
        else{
            ans&=interval(where[i-1]+1,where[i]);
        }
    }
    return ans;
}
int maxansi=0;
int n;
void all(int k, int start, vector<int> ok){
    //cout<<start;
    if(k==1){
        ok.push_back(n-1);
        /*for(int i=0; i<ok.size(); i++){
            cout<<ok[i]<<' ';
        }*/
        int ans=ansi(ok);
        //cout<<ans;
        //cout<<endl;
        if(ans>maxansi){
            maxansi=ans;
        }
        return;
    }
    for(int i=start; i<v.size()-(k-1); i++){
        //cout<<i;
        //v.push_back(i);
        vector<int> ko=ok;
        ko.push_back(i);
        all(k-1,i+1,ko);
    }
    return;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int k;
    cin>>n>>k;
    int ai;
    bool isitone=true;
    for(int i=0; i<n; i++){
        cin>>ai;
        if(ai!=0){
            isitone=false;
        }
        v.push_back(ai);
    }
    if(isitone==true){
        cout<<1;
        return 0;
    }
    all(k,0,{});
    cout<<maxansi;
}
