#include <bits/stdc++.h>
using namespace std;
int n, k;
long long arr[60];
bool dp[60][60];
long long sum[60];
bool chk(long long x) {
  memset(dp, 0, sizeof(dp));
  for (int i = 1; i <= n; i++) {
    if ((sum[i] & x) == x) {
      dp[i][1] = true;
    }
  }
  for (int i = 2; i <= k; i++) {
    for (int j = i; j <= n; j++) {
      for (int a = j; a >= i; a--) {
        if ((((sum[j] - sum[a - 1]) & x) == x) && dp[a - 1][i - 1]) {
          dp[j][i] = true;
        }
      }
    }
  }
  return dp[n][k];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    cin >> arr[i];
  }
  for (int i = 1; i <= n; i++) {
    sum[i] = sum[i - 1] + arr[i];
  }
  long long ans = 0;
  for (int i = 60; i >= 0; i--) {
    if (chk(ans | (1LL << i))) {
      ans = ans | (1LL << i);
    }
  }
  cout << ans << endl;
}
