#pragma GCC target("avx") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include using namespace std; void solve() { } int main() { cin.tie(0); ios::sync_with_stdio(false); int N; long long K; cin >> N >> K; vector A(N); for( int i = 0; i < N; i++ ) { cin >> A[i]; } long long l = 0, r = 1LL<<60, m; while( r-l > 1 ) { m = (l+r)>>1; long long s = 0, k = 0; for( long long i = 0; i < N; i++ ) { long long x = max(0LL, m-(A[i]+s)); k += (i+x)/(i+1); s += (i+x)/(i+1)*(i+1); } if( k <= K ) { l = m; }else { r = m; } } cout << l << endl; }