#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; ll N, K; vector A; bool solve(ll X){ ll S=0, cnt=0; for (ll i=1; i<=N; i++){ if (A[i]+S < X){ cnt += (X-(A[i]+S)+i-1) / i; S += (X-(A[i]+S)+i-1) / i * i; } } return cnt <= K; } int main(){ cin >> N >> K; A.resize(N+1); for (int i=0; i> A[i+1]; ll l=0, r=1e15, c; while(r-l>1){ c = (l+r)/2; if (solve(c)) l=c; else r=c; } cout << l << endl; return 0; }