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

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    long long n, k, qanak=1, bajanac=1, sum, min_sum=-1;
    cin>>n>>k;
    vector <int> a(n);
    vector <bool> b(n-1);
    vector <int> c(k);
    for (int i=0; i<k-1; ++i) {
        b[n-2-i] = 1;
    }
    for (int i = 0; i < n; i++) {
        cin>>a[i];
    }
    for (int i = n-1; i>n-k; i--) {
        qanak*=i;
        bajanac*=n-i;
    }
    qanak=qanak/bajanac;

    for (int i=0; i<qanak; i++) {
        int l=0;
        // for (int j=0; j<k; j++) {
        //     cout<<"Jackpot"<<c[j]<<"Jackpot";
        // }
        for (int j=0; j<k-1; j++) {
            while (b[l]!=1) {
                c[j]=c[j] | a[l];
                // cout<<a[l]<<" ";
                l++;
            }

            // cout<<a[l];
            l++;
            c[j]=c[j] | a[l];

            // cout<<"//";
        }
        for (int j=l; j<n; j++) {
            c[k-1]=c[k-1] | a[j];
            // cout<<a[j];
        }
        for (int j=0; j<k; j++) {
            // cout<<c[j]<<" ";
        }
        sum=c[0];
        for (int j=0; j<k; j++) {
            sum=sum & c[j];
            // cout<<sum<<" ";
        }
        // cout<<endl;
                                                        // for (int j=0; j<n-1; j++) {
                                                        //     cout<<b[j]<<" ";
                                                        // }
                                                        // cout<<endl;
        next_permutation(b.begin(), b.end());
        for (int j=0; j<k; j++) {
            c[j]=0;
        }
        // cout<<min_sum<<endl;
        if (sum>min_sum) {
            min_sum=sum;
        }
    }
    cout<<min_sum<<endl;
    return 0;
}