local mfl, mce = math.floor, math.ceil local n, m = io.read("*n", "*n") local a = {} for i = 1, n do a[i] = io.read("*n") end local function solve(x) local b = 0 for i = 1, n do b = b + a[i] if b < m * x then return false end b = b - m * x end return true end local min, max = 0, 1000000007 while 1 < max - min do local mid = mfl((min + max) / 2) if solve(mid) then min = mid else max = mid end end print(min)