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

l , r = 0, max(a)

def ok(L):
  cnt = 0
  for i in a:
    cnt += i // L
    if i % L == 0:
      cnt -= 1
  return cnt <= k

while r - l > 1:
  mid = (r + l) //2

  if ok(mid):
    r = mid
  else:
    l = 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 l , r = 0, max(a) l 0 r max(a) max a def ok(L):
  cnt = 0
  for i in a:
    cnt += i // L
    if i % L == 0:
      cnt -= 1
  return cnt <= k ok cnt = 0 cnt 0 for i in a:
    cnt += i // L
    if i % L == 0:
      cnt -= 1
   i a cnt += i // L cnt i // L i L if i % L == 0:
      cnt -= 1
   i % L == 0 i % L i L 0 cnt -= 1 cnt 1 return cnt <= k cnt <= k cnt k L L while r - l > 1:
  mid = (r + l) //2

  if ok(mid):
    r = mid
  else:
    l = mid r - l > 1 r - l r l 1 mid = (r + l) //2 mid (r + l) //2 r + l r l 2 if ok(mid):
    r = mid
  else:
    l = mid ok(mid) ok mid r = mid r mid l = mid l mid print(r) print r k = map(int, input().split()) map(int, input().split()) k l , r = 0, max(a) 0 l r = 0, max(a) max(a) r n, k = map(int, input().split()) map(int, input().split()) n l = mid mid l a = list(map(int, input().split())) list(map(int, input().split())) a r = mid mid r mid = (r + l) //2 (r + l) //2 mid def ok(L):
  cnt = 0
  for i in a:
    cnt += i // L
    if i % L == 0:
      cnt -= 1
  return cnt <= k def ok(L):
  cnt = 0
  for i in a:
    cnt += i // L
    if i % L == 0:
      cnt -= 1
  return cnt <= k ok
n, k = map(int, input().split())
a = list(map(int, input().split()))

l , r = 0, max(a)

def ok(L):
  cnt = 0
  for i in a:
    cnt += i // L
    if i % L == 0:
      cnt -= 1
  return cnt <= k

while r - l > 1:
  mid = (r + l) //2

  if ok(mid):
    r = mid
  else:
    l = mid

print(r)