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

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

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

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

ng = 0
ok = max(A)
while abs(ok - ng) > 1:
    mid = (ok + ng) // 2
    if is_ok(mid):
        ok = mid
    else:
        ng = mid
print(ok)
