N, K = map(int, input().split())
l = input().split()
l2 = [int(i) for i in l]

line1, line2 = 0, 10**9

while (line2-line1 > 1):
  x = int((line1 + line2) / 2)
  def f(x):
    now = 0
    for i in range(N):
      now += int((l2[i]-1)/x)
    return now <= K
  if f(x)==True:
    line2 = x
  else:
    line1 = x
    
print(line2) N, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split K l = input().split() l input().split() ().split () input split int(i) for i in l for i in l i l for i in l int(i) int i l2 = [int(i) for i in l] l2 [int(i) for i in l] line1, line2 = 0, 10**9 line1 0 line2 10**9 10 9 while (line2-line1 > 1):
  x = int((line1 + line2) / 2)
  def f(x):
    now = 0
    for i in range(N):
      now += int((l2[i]-1)/x)
    return now <= K
  if f(x)==True:
    line2 = x
  else:
    line1 = x
     line2-line1 > 1 line2-line1 line2 line1 1 x = int((line1 + line2) / 2) x int((line1 + line2) / 2) int (line1 + line2) / 2 line1 + line2 line1 line2 2 def f(x):
    now = 0
    for i in range(N):
      now += int((l2[i]-1)/x)
    return now <= K
   f now = 0 now 0 for i in range(N):
      now += int((l2[i]-1)/x)
     i range(N) range N now += int((l2[i]-1)/x) now int((l2[i]-1)/x) int (l2[i]-1)/x l2[i]-1 l2[i] l2 i 1 x return now <= K now <= K now K x x if f(x)==True:
    line2 = x
  else:
    line1 = x
     f(x)==True f(x) f x True line2 = x line2 x line1 = x line1 x print(line2) print line2 N, K = map(int, input().split()) map(int, input().split()) N line1, line2 = 0, 10**9 0 line1 l = input().split() input().split() l line1 = x x line1 l2 = [int(i) for i in l] [int(i) for i in l] l2 K = map(int, input().split()) map(int, input().split()) K line2 = 0, 10**9 10**9 line2 x = int((line1 + line2) / 2) int((line1 + line2) / 2) x def f(x):
    now = 0
    for i in range(N):
      now += int((l2[i]-1)/x)
    return now <= K
   def f(x):
    now = 0
    for i in range(N):
      now += int((l2[i]-1)/x)
    return now <= K
   f line2 = x x line2
N, K = map(int, input().split())
l = input().split()
l2 = [int(i) for i in l]

line1, line2 = 0, 10**9

while (line2-line1 > 1):
  x = int((line1 + line2) / 2)
  def f(x):
    now = 0
    for i in range(N):
      now += int((l2[i]-1)/x)
    return now <= K
  if f(x)==True:
    line2 = x
  else:
    line1 = x
    
print(line2)