N, K = map(int, input().split())
*A, = map(int, input().split())

def f(t):
    return sum(i//t if i!=t else 0 for i in A)<=K if t else all(i<=t for i in A)

l, r = -1, 10**10
while r-l>1:
    m = (r+l)//2
    if f(m):
        r = m
    else:
        l = m

print(r) N, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split K *A, = map(int, input().split()) *A A map(int, input().split()) map int input().split() ().split () input split def f(t):
    return sum(i//t if i!=t else 0 for i in A)<=K if t else all(i<=t for i in A) f return sum(i//t if i!=t else 0 for i in A)<=K if t else all(i<=t for i in A) sum(i//t if i!=t else 0 for i in A)<=K if t else all(i<=t for i in A) t sum(i//t if i!=t else 0 for i in A)<=K sum(i//t if i!=t else 0 for i in A) sum i//t if i!=t else 0 i!=t i t i//t i t 0 K all(i<=t for i in A) all i<=t i t t t l, r = -1, 10**10 l -1 r 10**10 10 10 while r-l>1:
    m = (r+l)//2
    if f(m):
        r = m
    else:
        l = m r-l>1 r-l r l 1 m = (r+l)//2 m (r+l)//2 r+l r l 2 if f(m):
        r = m
    else:
        l = m f(m) f m r = m r m l = m l m print(r) print r l = m m l K = map(int, input().split()) map(int, input().split()) K r = -1, 10**10 10**10 r def f(t):
    return sum(i//t if i!=t else 0 for i in A)<=K if t else all(i<=t for i in A) def f(t):
    return sum(i//t if i!=t else 0 for i in A)<=K if t else all(i<=t for i in A) f l, r = -1, 10**10 -1 l m = (r+l)//2 (r+l)//2 m r = m m r N, K = map(int, input().split()) map(int, input().split()) N
N, K = map(int, input().split())
*A, = map(int, input().split())

def f(t):
    return sum(i//t if i!=t else 0 for i in A)<=K if t else all(i<=t for i in A)

l, r = -1, 10**10
while r-l>1:
    m = (r+l)//2
    if f(m):
        r = m
    else:
        l = m

print(r)
