#include<bits/stdc++.h>
using namespace std;
const int maxn=1e3+7;
int dp[maxn][maxn];
int a[maxn];
int main() {
int n,k;
cin>>n>>k;
for(int i=1; i<=n; i++) {
      cin>>a[i];
}

for(int i=0; i<=n; i++) {
      for(int j=0; j<=k; j++) {
          dp[i][j]=INT_MIN;
      }
}
dp[0][0]=-1;
for(int i=1; i<=n; i++) {
        for(int br=1; br<=k; br++) {
        int curror=0;
      for(int j=i; j>0; j--) {
        curror=(curror|a[j]);
               if(dp[j-1][br-1]!=INT_MIN) {
             if(dp[j-1][br-1]==-1)  dp[i][br]=max(dp[i][br],curror);
             else dp[i][br]=max(dp[i][br],(dp[j-1][br-1]&curror));

        }
      }
        }

}
cout<<dp[n][k]<<endl;
return 0;
}
