#include #include #include #include #include #include using namespace std; typedef long long ll; #define rep(i,n) for (int i=0;i < (int)(n);i++) void slove(){ int n; ll m; cin >> n >> m; vector a(n); rep(i,n) cin >> a[i]; auto can = [&](ll x){ vector b = a; for (int i = 0; i < n;i++){ if (b[i] < x*m) return false; if (i < n-1) b[i+1] += b[i]-x*m; } return true; }; ll l = -1,r = 1e9 + 7; while(r-l > 1){ ll mid = (l+r)/2; if (can(mid)) l = mid; else r = mid; } cout << l << endl; } int main(){ int tt = 1; //cin >> tt; while(tt--){ slove(); } return 0; }