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

ub = 10 ** 9 + 7
lb = 0
while ub - lb > 1:
    mid = (ub + lb) // 2

    cnt = 0
    for v in X:
        cnt += -(-v // mid) - 1

    if cnt <= K:
        ub = mid
    else:
        lb = mid

print(ub) N, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split K X = list(map(int, input().split())) X list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split ub = 10 ** 9 + 7 ub 10 ** 9 + 7 10 ** 9 10 9 7 lb = 0 lb 0 while ub - lb > 1:
    mid = (ub + lb) // 2

    cnt = 0
    for v in X:
        cnt += -(-v // mid) - 1

    if cnt <= K:
        ub = mid
    else:
        lb = mid ub - lb > 1 ub - lb ub lb 1 mid = (ub + lb) // 2 mid (ub + lb) // 2 ub + lb ub lb 2 cnt = 0 cnt 0 for v in X:
        cnt += -(-v // mid) - 1

     v X cnt += -(-v // mid) - 1 cnt -(-v // mid) - 1 -(-v // mid) -v // mid -v v mid 1 if cnt <= K:
        ub = mid
    else:
        lb = mid cnt <= K cnt K ub = mid ub mid lb = mid lb mid print(ub) print ub lb = 0 0 lb mid = (ub + lb) // 2 (ub + lb) // 2 mid lb = mid mid lb ub = mid mid ub X = list(map(int, input().split())) list(map(int, input().split())) X N, K = map(int, input().split()) map(int, input().split()) N ub = 10 ** 9 + 7 10 ** 9 + 7 ub cnt += -(-v // mid) - 1 -(-v // mid) - 1 cnt K = map(int, input().split()) map(int, input().split()) K cnt = 0 0 cnt

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

ub = 10 ** 9 + 7
lb = 0
while ub - lb > 1:
    mid = (ub + lb) // 2

    cnt = 0
    for v in X:
        cnt += -(-v // mid) - 1

    if cnt <= K:
        ub = mid
    else:
        lb = mid

print(ub)
