n,k=map(int, input().split())
A=[int(i) for i in input().split()]
ng=0
ok = max(A)
while(ng+1!=ok):
    mid = (ok+ng)//2
    ans = 0
    for i in A:
        ans += 0--i//mid-1
    if(ans<=k):
        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 int(i) for i in input().split() for i in input().split() i input().split() ().split () input split for i in input().split() int(i) int i A=[int(i) for i in input().split()] A [int(i) for i in input().split()] ng=0 ng 0 ok = max(A) ok max(A) max A while(ng+1!=ok):
    mid = (ok+ng)//2
    ans = 0
    for i in A:
        ans += 0--i//mid-1
    if(ans<=k):
        ok = mid
    else:
        ng = mid ng+1!=ok ng+1 ng 1 ok mid = (ok+ng)//2 mid (ok+ng)//2 ok+ng ok ng 2 ans = 0 ans 0 for i in A:
        ans += 0--i//mid-1
     i A ans += 0--i//mid-1 ans 0--i//mid-1 0--i//mid 0 -i//mid -i i mid 1 if(ans<=k):
        ok = mid
    else:
        ng = mid ans<=k ans k ok = mid ok mid ng = mid ng mid print(ok) print ok A=[int(i) for i in input().split()] [int(i) for i in input().split()] A ng=0 0 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 ok = mid mid ok ng = mid mid ng ans += 0--i//mid-1 0--i//mid-1 ans ans = 0 0 ans k=map(int, input().split()) map(int, input().split()) k
n,k=map(int, input().split())
A=[int(i) for i in input().split()]
ng=0
ok = max(A)
while(ng+1!=ok):
    mid = (ok+ng)//2
    ans = 0
    for i in A:
        ans += 0--i//mid-1
    if(ans<=k):
        ok = mid
    else:
        ng = mid
print(ok)
