#include <iostream>

#define MAXN 1000000

using namespace std;

int v[MAXN], c[MAXN + 1];

int genc(int n, int k, int idx) {
    int val, o, i, j;

    val = 0;
    if (idx < k) {
        for (i = c[idx - 1] + 1; i <= n - k + idx; i++) {
            c[idx] = i;
            val = max(val, genc(n, k, idx + 1));
        }
    } else {
        for (i = 0; i < k; i++) {
            o = 0;
            for (j = c[i]; j < c[i + 1]; j++) {
                o = o | v[j];
            }
            val = (i == 0) ? o : (val & o);
        }
    }

    return val;
}

int main() {
    int n, k, i;

    cin >> n >> k;
    for (i = 0; i < n; i++) {
        cin >> v[i];
    }

    c[0] = 0;
    c[k] = n;
    cout <<genc(n, k, 1);

    return 0;
}
