#include <bits/stdc++.h>
using namespace std;
#define int long long
int ans = -1145141919810;
int w[55],yyy[55];
int n,beginlevel,maxlevel;
void dfs(int u,int v)
{
if(v > n)
{
ans = max(ans,u);
return;
}
if(u - w[v] >= 0 && (u - w[v] + yyy[v + 1]) >= ans) dfs(u - w[v],v + 1);
if(u + w[v] <= maxlevel) dfs(u + w[v],v + 1);
}
signed main()
{
cin >> n >> beginlevel >> maxlevel;
for(int i = 1;i <= n;i++)
{
cin >> w[i];
}
for(int i = n;i >= 1;i--)
{
yyy[i] = yyy[i - 1] + w[i];
}
dfs(beginlevel,1);
if(ans == -1145141919810) cout << -1;
else cout << ans;
return 0;
}