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

inf = 1
sup = max(a)

while inf < sup:
  x = (inf + sup) // 2
  cut = 0
  for a_i in a:
    cut += (a_i - 1) // x
  if cut <= k:
    sup = x
  else:
    inf = x + 1
print(sup) 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 inf = 1 inf 1 sup = max(a) sup max(a) max a while inf < sup:
  x = (inf + sup) // 2
  cut = 0
  for a_i in a:
    cut += (a_i - 1) // x
  if cut <= k:
    sup = x
  else:
    inf = x + 1 inf < sup inf sup x = (inf + sup) // 2 x (inf + sup) // 2 inf + sup inf sup 2 cut = 0 cut 0 for a_i in a:
    cut += (a_i - 1) // x
   a_i a cut += (a_i - 1) // x cut (a_i - 1) // x a_i - 1 a_i 1 x if cut <= k:
    sup = x
  else:
    inf = x + 1 cut <= k cut k sup = x sup x inf = x + 1 inf x + 1 x 1 print(sup) print sup a = list(map(int, input().split())) list(map(int, input().split())) a sup = max(a) max(a) sup k = map(int, input().split()) map(int, input().split()) k inf = 1 1 inf x = (inf + sup) // 2 (inf + sup) // 2 x cut = 0 0 cut sup = x x sup cut += (a_i - 1) // x (a_i - 1) // x cut inf = x + 1 x + 1 inf n, k = map(int, input().split()) map(int, input().split()) n
n, k = map(int, input().split())
a = list(map(int, input().split()))

inf = 1
sup = max(a)

while inf < sup:
  x = (inf + sup) // 2
  cut = 0
  for a_i in a:
    cut += (a_i - 1) // x
  if cut <= k:
    sup = x
  else:
    inf = x + 1
print(sup)