n,k=list(map(int,input().split()))

alst=list([int(x)*100 for x in input().split()])



ok=max(alst)

ng=0



while abs(ok-ng)>1:

    cen=(ok+ng)//2



    cnt=0



    for a in alst:

        cnt+=(a+cen-1)//cen-1



    if cnt<=k:

        ok=cen

    else:

        ng=cen+1



if ok%100==0:

    print((ok//100))

else:

    print((ok//100+1))
n,k=list(map(int,input().split()))

alst=list(map(int,input().split()))



ok=max(alst)

ng=0



while abs(ok-ng)>1:

    cen=(ok+ng)//2



    cnt=0



    for a in alst:

        cnt+=(a+cen-1)//cen-1



    if cnt<=k:

        ok=cen

    else:

        ng=cen



print(ok)
n, k = list(map(int, input().split()))
alst = list([int(x) * 100 for x in input().split()])
ok = max(alst)
ng = 0
while abs(ok - ng) > 1:
    cen = (ok + ng) // 2
    cnt = 0
    for a in alst:
        cnt += (a + cen - 1) // cen - 1
    if cnt <= k:
        ok = cen
    else:
        ng = cen + 1
if ok % 100 == 0:
    print((ok // 100))
else:
    print((ok // 100 + 1))

n, k = list(map(int, input().split()))
alst = list(map(int, input().split()))
ok = max(alst)
ng = 0
while abs(ok - ng) > 1:
    cen = (ok + ng) // 2
    cnt = 0
    for a in alst:
        cnt += (a + cen - 1) // cen - 1
    if cnt <= k:
        ok = cen
    else:
        ng = cen
print(ok)

-alst = list([int(x) * 100 for x in input().split()]) +alst = list(map(int, input().split())) -        ng = cen + 1 -if ok % 100 == 0: -    print((ok // 100)) -else: -    print((ok // 100 + 1)) +        ng = cen +print(ok)