n,k=map(int,input().split())
a=list(map(int,input().split()))
l=0;r=10**10
while r-l>1:
  x=(l+r)//2
  ct=0
  for i in range(n):
    ct+=(a[i]-1)//x
  if ct<=k:
    r=x
  else:
    l=x
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 l=0 l 0 r=10**10 r 10**10 10 10 while r-l>1:
  x=(l+r)//2
  ct=0
  for i in range(n):
    ct+=(a[i]-1)//x
  if ct<=k:
    r=x
  else:
    l=x r-l>1 r-l r l 1 x=(l+r)//2 x (l+r)//2 l+r l r 2 ct=0 ct 0 for i in range(n):
    ct+=(a[i]-1)//x
   i range(n) range n ct+=(a[i]-1)//x ct (a[i]-1)//x a[i]-1 a[i] a i 1 x if ct<=k:
    r=x
  else:
    l=x ct<=k ct k r=x r x l=x l x print(r) print r k=map(int,input().split()) map(int,input().split()) k a=list(map(int,input().split())) list(map(int,input().split())) a x=(l+r)//2 (l+r)//2 x ct=0 0 ct n,k=map(int,input().split()) map(int,input().split()) n ct+=(a[i]-1)//x (a[i]-1)//x ct l=x x l r=10**10 10**10 r l=0 0 l r=x x r
n,k=map(int,input().split())
a=list(map(int,input().split()))
l=0;r=10**10
while r-l>1:
  x=(l+r)//2
  ct=0
  for i in range(n):
    ct+=(a[i]-1)//x
  if ct<=k:
    r=x
  else:
    l=x
print(r)