#include <bits/stdc++.h>
using namespace std;
const int N = 2000+5;
int a[N];
// for(int i=1; i<=n; i++)
void solve(){
int n, L, R; cin >> n >> L >> R;
for(int i=1; i<=n; i++) cin >> a[i];
vector<vector<long long>> dp(n+1);
dp[0].push_back(0);
long long mn = 1e18;
for(int g=1; g<=R; g++){
vector<vector<long long>> n_dp(n+1);
for(int i=1; i<=n; i++) {
long long sm = 0;
unordered_map<long long, bool> seen;
for(int j=i; j>=1; j--){
sm += a[j];
for(long long OR: dp[j-1]){
if((sm|OR) > mn) continue;
if(seen[sm|OR]) continue;
n_dp[i].push_back(sm | OR);
seen[sm|OR] = true;
}
}
}
swap(dp, n_dp);
if(g >= L) for(long long OR: dp[n]) mn = min(mn, OR);
}
cout << mn;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
}