n,k=map(int,input().split())
A = list(map(int, input().split()))
r = max(A)
l = 0
while l+1<r:
  mid=(l+r)//2
  if sum([(a-1)//mid for a in A])>k:
    l=mid
  else:
    r = mid
print(r) 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 r = max(A) r max(A) max A l = 0 l 0 while l+1<r:
  mid=(l+r)//2
  if sum([(a-1)//mid for a in A])>k:
    l=mid
  else:
    r = mid l+1<r l+1 l 1 r mid=(l+r)//2 mid (l+r)//2 l+r l r 2 if sum([(a-1)//mid for a in A])>k:
    l=mid
  else:
    r = mid sum([(a-1)//mid for a in A])>k sum([(a-1)//mid for a in A]) sum [(a-1)//mid for a in A] k l=mid l mid r = mid r mid print(r) print r A = list(map(int, input().split())) list(map(int, input().split())) A mid=(l+r)//2 (l+r)//2 mid k=map(int,input().split()) map(int,input().split()) k r = mid mid r n,k=map(int,input().split()) map(int,input().split()) n l = 0 0 l l=mid mid l r = max(A) max(A) r
n,k=map(int,input().split())
A = list(map(int, input().split()))
r = max(A)
l = 0
while l+1<r:
  mid=(l+r)//2
  if sum([(a-1)//mid for a in A])>k:
    l=mid
  else:
    r = mid
print(r)