#答えを決め打つと最小で何回やる必要があるかわかるので二分探索ができる
n,k = gets.split.map(&:to_i)
a = gets.split.map(&:to_i)

l = 0
r=10**9+1

while l+1<r do
    m = (l+r)>>1
    cnt = 0
    for x in a do
        cnt += (x-1)/m
    end
    if cnt>k then l=m else r=m end
end

puts r