#include #define REP(i,n) for(int i=0,i##_len=int(n);i>n>>k; vector a(n); REP(i,n) cin>>a[i]; ll l = *std::min_element(All(a)), r=1e18; while(l+1>1; ll sum = 0; ll fc = 0; REP(i, n){ ll now = a[i] + sum; if(mid - now > 0) { ll cnt = (mid-now + i) / (i+1); sum += cnt * (i+1); fc += cnt; } } if(fc <= k) l = mid; else r = mid; } cout << l << endl; }