N, K = map(int, input().split())
AList = list(map(int, input().split()))

l = 0
r = 10**9
while r-l > 1:
  x = (l + r)//2
  now = 0
  for a in AList:
    now += (a-1)//x
  f = lambda now : True if now <= K else False
  if f(now):
    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 AList = list(map(int, input().split())) AList list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split l = 0 l 0 r = 10**9 r 10**9 10 9 while r-l > 1:
  x = (l + r)//2
  now = 0
  for a in AList:
    now += (a-1)//x
  f = lambda now : True if now <= K else False
  if f(now):
    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 now = 0 now 0 for a in AList:
    now += (a-1)//x
   a AList now += (a-1)//x now (a-1)//x a-1 a 1 x f = lambda now : True if now <= K else False f lambda now : True if now <= K else False True if now <= K else False now <= K now K True False now if f(now):
    r = x
  else:
    l = x f(now) f now r = x r x l = x l x print(r) print r AList = list(map(int, input().split())) list(map(int, input().split())) AList l = 0 0 l x = (l + r)//2 (l + r)//2 x N, K = map(int, input().split()) map(int, input().split()) N K = map(int, input().split()) map(int, input().split()) K f = lambda now : True if now <= K else False lambda now : True if now <= K else False f r = x x r now = 0 0 now l = x x l r = 10**9 10**9 r now += (a-1)//x (a-1)//x now
N, K = map(int, input().split())
AList = list(map(int, input().split()))

l = 0
r = 10**9
while r-l > 1:
  x = (l + r)//2
  now = 0
  for a in AList:
    now += (a-1)//x
  f = lambda now : True if now <= K else False
  if f(now):
    r = x
  else:
    l = x
print(r)