#include <bits/stdc++.h>
using namespace std;
#define vc vector
#define vi vc<int>
#define int long long

signed main() {
    cin.tie(0)->ios::sync_with_stdio(0);
    int n, k;
    cin >> n >> k;
    vi a(n);
    for(int i = 0; i < n; i++)cin >> a[i];
    vc<vi>t(n, vi(n));
    for(int i = 0; i < n; i++){
        for(int j = i; j < n; j++){
            if(i == j)t[i][j] = (a[i] | a[j]);
            else {
                t[i][j] = (t[i][j - 1] | a[j]);
            }
        }
    }
    //for(int i = 0; i < n; i++){
    //    for(int j = 0; j < n; j++){
    //        cout << t[i][j] << ' ';
    //    }
    //    cout << '\n';
    //}
    set<int>ans;
    for(int i = 0; i < (n - k); i++){
        int x = t[0][i];
        int q = k - 1;
        int l = i;
        while(q--){
            int j1 = 0;
            for(int j = l + 1; j < (n - q); j++){
                x &= t[l + 1][j];
                ans.insert(x);
                j1 = j;
            }
            l = j1;
        }
    }
    cout << *max_element(ans.begin(), ans.end()));
}
