#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 50, B = 20;
ll min_beauty[B+1][N+1];
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int n, a, b; cin >> n >> a >> b;
vector<int> y(n+1); for(int i = 1; i <= n; ++i) cin >> y[i];
for(int i = 1; i <= B; ++i) {
for(int j = 1; j <= N; ++j) {
min_beauty[i][j] = LLONG_MAX;
}
}
ll b1_sum = 0;
for(int i = 1; i <= n; ++i) {
b1_sum += y[i];
min_beauty[1][i] = b1_sum;
}
for(int x = 2; x <= b; ++x) { // add xth block
for(int r = 1; r <= n; ++r) { // ending point of block
ll block_sum = 0;
for(int l = r; l >= x; --l) { // starting point
block_sum += y[l];
min_beauty[x][r] = min(min_beauty[x][r], min_beauty[x-1][l-1] | block_sum);
}
}
}
// for(int i = 1; i <= B; ++i) {
// for(int j = 1; j <= N; ++j) {
// cout << (min_beauty[i][j] == LLONG_MAX ? -1 : min_beauty[i][j]) << ' ';
// }
// cout << endl;
// }
ll ans = LLONG_MAX;
for(int x = a; x <= b; ++x) {
ans = min(ans, min_beauty[x][n]);
}
cout << ans;
}