n,k = gets.chomp.split(" ").map(&:to_i)
a_arr = gets.chomp.split(" ").map(&:to_i)

len_arr = []
a_arr.each do |a|
  # もとの長さ, m等分, m等分したあとの長さ
  len_arr << [a, 1, a]
end

len_arr.sort_by!{|len| -len[-1]}

# でかいものから順に等分することを繰り返す
k.times do
  # もとの長さ, m等分, m等分したあとの長さ
  a, m, l = len_arr.shift
  m += 1
  l = a / m.to_f
  # lの位置を二部探索で求める
  index = len_arr.bsearch_index {|len| l >= len[-1]} || -1
  len_arr.insert(index, [a, m, l])
end

puts len_arr[0][-1].ceil
