#include<iostream>
#include<vector>
#include<algorithm>
#include<map>

using namespace std;

int main(){
	int n, k;
	cin >> n >> k;
	vector<long long> a(n + 1);
	for(int i = 1; i <= n; i++){
		cin >> a[i];
		a[i] += a[i - 1];
	}
	map<long long, int> mp;
	for(int i = 0; i <= n - 1; i++){
		for(int j = i + 1; j <= n; j++){
			mp[a[j] - a[i]]++;
		}
	}
	long long ans = 0;
	for(int i = 40; i >= 0; i--){
		int cnt = 0;
		for(auto&& j : mp){
			if((j.first & (ans + (1LL << i))) == ans + (1LL << i)){
				cnt += j.second;
			}
		}
		if(cnt >= k) ans += (1LL << i);
	}
	cout << ans << endl;
	return 0;
}