#include using namespace std; int main(void){ long long n,k; cin>>n>>k; vectora(n); for(int i=0;i>a[i]; vectord(n+1,0); long long ans=a[0]; for(int i=0;i>st; for(int i=0;i=st.top()[0]){ st.push({a[i],i}); continue; }else{ while(1){ arraytmp=st.top(); st.pop(); if(st.empty()||a[i]>=st.top()[0]){ d[i-tmp[1]]+=tmp[0]-a[i]; st.push({a[i],i}); break; }else{ d[i-tmp[1]]+=tmp[0]-st.top()[0]; } } } } while(!st.empty()){ arraytmp=st.top(); st.pop(); if(st.empty()){ d[n-tmp[1]]+=tmp[0]; break; }else{ d[n-tmp[1]]+=tmp[0]-st.top()[0]; } } for(int i=1;i<=n;i++){ if(d[i]<=k/i){ ans-=d[i]*2; k-=d[i]*i; }else{ ans-=(k/i)*2; break; } } cout<