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

def check(l):
    count = 0
    for L in A:
        count += L // l
        if L % l != 0:
            count += 1
        count -= 1
    return count <= K

bottom, top = 0, max(A)

while top - bottom > 1:
    mid = (top + bottom) // 2
    if check(mid):
        top = mid
    else:
        bottom = mid

print(top) 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 check(l):
    count = 0
    for L in A:
        count += L // l
        if L % l != 0:
            count += 1
        count -= 1
    return count <= K check count = 0 count 0 for L in A:
        count += L // l
        if L % l != 0:
            count += 1
        count -= 1
     L A count += L // l count L // l L l if L % l != 0:
            count += 1
         L % l != 0 L % l L l 0 count += 1 count 1 count -= 1 count 1 return count <= K count <= K count K l l bottom, top = 0, max(A) bottom 0 top max(A) max A while top - bottom > 1:
    mid = (top + bottom) // 2
    if check(mid):
        top = mid
    else:
        bottom = mid top - bottom > 1 top - bottom top bottom 1 mid = (top + bottom) // 2 mid (top + bottom) // 2 top + bottom top bottom 2 if check(mid):
        top = mid
    else:
        bottom = mid check(mid) check mid top = mid top mid bottom = mid bottom mid print(top) print top mid = (top + bottom) // 2 (top + bottom) // 2 mid def check(l):
    count = 0
    for L in A:
        count += L // l
        if L % l != 0:
            count += 1
        count -= 1
    return count <= K def check(l):
    count = 0
    for L in A:
        count += L // l
        if L % l != 0:
            count += 1
        count -= 1
    return count <= K check bottom, top = 0, max(A) 0 bottom top = mid mid top A = list(map(int, input().split())) list(map(int, input().split())) A N, K = map(int, input().split()) map(int, input().split()) N top = 0, max(A) max(A) top bottom = mid mid bottom K = map(int, input().split()) map(int, input().split()) K
N, K = map(int, input().split())
A = list(map(int, input().split()))

def check(l):
    count = 0
    for L in A:
        count += L // l
        if L % l != 0:
            count += 1
        count -= 1
    return count <= K

bottom, top = 0, max(A)

while top - bottom > 1:
    mid = (top + bottom) // 2
    if check(mid):
        top = mid
    else:
        bottom = mid

print(top)
