n, k = map(int, input().split())
a = list(map(int, input().split()))
l = 0; r = 10**9
while r-l > 1:
    b = 0; x = (l+r)//2
    for i in range(n): b += (a[i]-1)//x
    if k < b:
        l = x
    else:
        r = 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 l = 0 l 0 r = 10**9 r 10**9 10 9 while r-l > 1:
    b = 0; x = (l+r)//2
    for i in range(n): b += (a[i]-1)//x
    if k < b:
        l = x
    else:
        r = x r-l > 1 r-l r l 1 b = 0 b 0 x = (l+r)//2 x (l+r)//2 l+r l r 2 for i in range(n): b += (a[i]-1)//x
     i range(n) range n if k < b:
        l = x
    else:
        r = x k < b k b l = x l x r = x r x print(r) print r k = map(int, input().split()) map(int, input().split()) k l = 0 0 l r = 10**9 10**9 r x = (l+r)//2 (l+r)//2 x a = list(map(int, input().split())) list(map(int, input().split())) a n, k = map(int, input().split()) map(int, input().split()) n r = x x r l = x x l b = 0 0 b
n, k = map(int, input().split())
a = list(map(int, input().split()))
l = 0; r = 10**9
while r-l > 1:
    b = 0; x = (l+r)//2
    for i in range(n): b += (a[i]-1)//x
    if k < b:
        l = x
    else:
        r = x
print(r)