#include<bits/stdc++.h>
using namespace std;
long long n,b,m,ansm=INT_MIN,ans,ans2,k=1,a[1000001];
int maxn(){
if(ans+a[k]<=m and k<=n){
ans+=a[k];
ans2-=a[k];
if(ans2<0){
ans2=-1;
}
ansm=max(ans,ansm);
ansm=max(ansm,ans);
k++;
maxn();
}else if(ans-a[k]<=m and k<=n){
ans-=a[k];
if(ans<0){
ans=-1;
}
ans2+=a[k];
ansm=max(ans,ansm);
ansm=max(ansm,ans);
k++;
maxn();
}else if(ans+a[k]>m or ans-a[k]<0 and k<=n){
ans=-1;
k++;
maxn();
}
return ansm;
}
int main(){
cin>>n>>b>>m;
ans=b;
for(int i=1;i<=n;i++){
cin>>a[i];
}
maxn();
cout<<ansm;
return 0;
}