N, K = map(int, input().split())
A = list(map(int, input().split()))
ok = 10**9
ng = 0
while ng+1 < ok:
    tmp = (ok+ng)//2
    k = 0
    for a in A:
        if a%tmp == 0:
            k += a//tmp -1
        else:
            k += a//tmp
    if k <= K:
        ok = tmp
    else:
        ng = tmp
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 ok = 10**9 ok 10**9 10 9 ng = 0 ng 0 while ng+1 < ok:
    tmp = (ok+ng)//2
    k = 0
    for a in A:
        if a%tmp == 0:
            k += a//tmp -1
        else:
            k += a//tmp
    if k <= K:
        ok = tmp
    else:
        ng = tmp ng+1 < ok ng+1 ng 1 ok tmp = (ok+ng)//2 tmp (ok+ng)//2 ok+ng ok ng 2 k = 0 k 0 for a in A:
        if a%tmp == 0:
            k += a//tmp -1
        else:
            k += a//tmp
     a A if a%tmp == 0:
            k += a//tmp -1
        else:
            k += a//tmp
     a%tmp == 0 a%tmp a tmp 0 k += a//tmp -1 k a//tmp -1 a//tmp a tmp 1 k += a//tmp k a//tmp a tmp if k <= K:
        ok = tmp
    else:
        ng = tmp k <= K k K ok = tmp ok tmp ng = tmp ng tmp print(ok) print ok ng = 0 0 ng ok = tmp tmp ok k = 0 0 k ng = tmp tmp ng N, K = map(int, input().split()) map(int, input().split()) N A = list(map(int, input().split())) list(map(int, input().split())) A tmp = (ok+ng)//2 (ok+ng)//2 tmp ok = 10**9 10**9 ok k += a//tmp -1 a//tmp -1 k k += a//tmp a//tmp k K = map(int, input().split()) map(int, input().split()) K
N, K = map(int, input().split())
A = list(map(int, input().split()))
ok = 10**9
ng = 0
while ng+1 < ok:
    tmp = (ok+ng)//2
    k = 0
    for a in A:
        if a%tmp == 0:
            k += a//tmp -1
        else:
            k += a//tmp
    if k <= K:
        ok = tmp
    else:
        ng = tmp
print(ok)