n, k = map(int, input().split())
a = list(map(int, input().split()))

def f(m):
    res = sum([-(-x//m)-1 for x in a])
    return res <= k

l, r = 0, 10**9+10

while r-l > 1:
    x = (l+r)//2
    if f(x): r = x
    else: l = x

print(r) n, k = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split k a = list(map(int, input().split())) a list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split def f(m):
    res = sum([-(-x//m)-1 for x in a])
    return res <= k f -(-x//m)-1 for x in a for x in a x a for x in a -(-x//m)-1 -(-x//m) -x//m -x x m 1 res = sum([-(-x//m)-1 for x in a]) res sum([-(-x//m)-1 for x in a]) sum [-(-x//m)-1 for x in a] return res <= k res <= k res k m m l, r = 0, 10**9+10 l 0 r 10**9+10 10**9 10 9 10 while r-l > 1:
    x = (l+r)//2
    if f(x): r = x
    else: l = x r-l > 1 r-l r l 1 x = (l+r)//2 x (l+r)//2 l+r l r 2 if f(x): r = x
    else: l = x f(x) f x print(r) print r n, k = map(int, input().split()) map(int, input().split()) n l, r = 0, 10**9+10 0 l k = map(int, input().split()) map(int, input().split()) k x = (l+r)//2 (l+r)//2 x r = 0, 10**9+10 10**9+10 r a = list(map(int, input().split())) list(map(int, input().split())) a def f(m):
    res = sum([-(-x//m)-1 for x in a])
    return res <= k def f(m):
    res = sum([-(-x//m)-1 for x in a])
    return res <= k f
n, k = map(int, input().split())
a = list(map(int, input().split()))

def f(m):
    res = sum([-(-x//m)-1 for x in a])
    return res <= k

l, r = 0, 10**9+10

while r-l > 1:
    x = (l+r)//2
    if f(x): r = x
    else: l = x

print(r)
