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

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

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

print(right) 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):
    if t!=0:
        c = 0
        for i in A:
            c += i//t if i!=t else 0
        return c<=K
    else:
        return all(i<=t for i in A) f if t!=0:
        c = 0
        for i in A:
            c += i//t if i!=t else 0
        return c<=K
    else:
        return all(i<=t for i in A) t!=0 t 0 c = 0 c 0 for i in A:
            c += i//t if i!=t else 0
         i A c += i//t if i!=t else 0 c i//t if i!=t else 0 i!=t i t i//t i t 0 return c<=K c<=K c K return all(i<=t for i in A) all(i<=t for i in A) all i<=t i t t t left, right = -1, 10**10 left -1 right 10**10 10 10 while right-left>1:
    m = (right+left)//2
    if f(m):
        right = m
    else:
        left = m right-left>1 right-left right left 1 m = (right+left)//2 m (right+left)//2 right+left right left 2 if f(m):
        right = m
    else:
        left = m f(m) f m right = m right m left = m left m print(right) print right N, K = map(int, input().split()) map(int, input().split()) N K = map(int, input().split()) map(int, input().split()) K def f(t):
    if t!=0:
        c = 0
        for i in A:
            c += i//t if i!=t else 0
        return c<=K
    else:
        return all(i<=t for i in A) def f(t):
    if t!=0:
        c = 0
        for i in A:
            c += i//t if i!=t else 0
        return c<=K
    else:
        return all(i<=t for i in A) f right = -1, 10**10 10**10 right left = m m left right = m m right left, right = -1, 10**10 -1 left m = (right+left)//2 (right+left)//2 m
N, K = map(int, input().split())
*A, = map(int, input().split())

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

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

print(right)
