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)