'use strict';
function Main(inputs) {
  // 1行目がinput[0], 2行目がinput[1], …に入る
  const input = inputs.split("\n");
  const [n, k] = input[0].split(' ').map(Number);
  const a = input[1].split(' ').map(Number);

  let left = 1;
  let right = 1e9;
  while(left < right){
    const middle = Math.floor((left + right) / 2);
    const cut = a.reduce((acc, t) => t <= middle ? acc : acc + Math.ceil(t / middle) - 1, 0);
    if (k < cut){
      left = middle + 1;
    } else {
      right = middle;
    }
  }
  console.log(left);
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
