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

def is_ok(mid):
    s = 0
    for j in range(N):
        if mid < A[j]:
            s += A[j] // mid
    return s <= K

max_A = 10**9 + 1
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(mid):
    s = 0
    for j in range(N):
        if mid < A[j]:
            s += A[j] // mid
    return s <= K is_ok s = 0 s 0 for j in range(N):
        if mid < A[j]:
            s += A[j] // mid
     j range(N) range N if mid < A[j]:
            s += A[j] // mid
     mid < A[j] mid A[j] A j s += A[j] // mid s A[j] // mid A[j] A j mid return s <= K s <= K s K mid mid max_A = 10**9 + 1 max_A 10**9 + 1 10**9 10 9 1 ng = 0 ng 0 ok = max_A ok 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 N, K = map(int, input().split()) map(int, input().split()) N ng = mid mid ng def is_ok(mid):
    s = 0
    for j in range(N):
        if mid < A[j]:
            s += A[j] // mid
    return s <= K def is_ok(mid):
    s = 0
    for j in range(N):
        if mid < A[j]:
            s += A[j] // mid
    return s <= K is_ok max_A = 10**9 + 1 10**9 + 1 max_A ng = 0 0 ng ok = mid mid ok A = list(map(int, input().split())) list(map(int, input().split())) A ok = max_A max_A ok mid = (ok + ng) // 2 (ok + ng) // 2 mid K = map(int, input().split()) map(int, input().split()) K
N, K = map(int, input().split())
A = list(map(int, input().split()))

def is_ok(mid):
    s = 0
    for j in range(N):
        if mid < A[j]:
            s += A[j] // mid
    return s <= K

max_A = 10**9 + 1
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)