import java.util.*;
public class Main {
static boolean check(int k, ArrayList<Integer> b, int d) {
int n = b.size();
int sum_moves = 0;
for(int i = 0; i < n; i++) {
if(b.get(i) % k == 0) {
sum_moves += b.get(i) / k;
} else {
sum_moves += (b.get(i) / k) + 1;
}
}
return sum_moves <= d;
}
public static void main
(String[] args
) { Scanner scanner
= new Scanner
(System.
in); int n = scanner.nextInt();
int d = scanner.nextInt();
if (d < n) {
return;
}
ArrayList<Integer> b = new ArrayList<>();
for(int i = 0; i < n; i++) {
b.add(scanner.nextInt());
}
int low = 1;
int high = limit;
int u = 0;
int answer = 0;
while(low <= high && u == 0) {
int mid = (low + high) / 2;
if(!check(mid, b, d)) {
low = mid + 1;
} else {
if(mid == 1) {
u = 1;
answer = mid;
} else if(!check(mid - 1, b, d)) {
u = 1;
answer = mid;
} else {
high = mid - 1;
}
}
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgCiAgICBzdGF0aWMgYm9vbGVhbiBjaGVjayhpbnQgaywgQXJyYXlMaXN0PEludGVnZXI+IGIsIGludCBkKSB7CiAgICAgICAgaW50IG4gPSBiLnNpemUoKTsKICAgICAgICBpbnQgc3VtX21vdmVzID0gMDsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGlmKGIuZ2V0KGkpICUgayA9PSAwKSB7CiAgICAgICAgICAgICAgICBzdW1fbW92ZXMgKz0gYi5nZXQoaSkgLyBrOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3VtX21vdmVzICs9IChiLmdldChpKSAvIGspICsgMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gc3VtX21vdmVzIDw9IGQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2Nhbm5lciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IG4gPSBzY2FubmVyLm5leHRJbnQoKTsKICAgICAgICBpbnQgZCA9IHNjYW5uZXIubmV4dEludCgpOwoKICAgICAgICBpZiAoZCA8IG4pIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKC0xKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgQXJyYXlMaXN0PEludGVnZXI+IGIgPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGIuYWRkKHNjYW5uZXIubmV4dEludCgpKTsKICAgICAgICB9CgogICAgICAgIGludCBsaW1pdCA9IENvbGxlY3Rpb25zLm1heChiKTsKICAgICAgICBpbnQgbG93ID0gMTsKICAgICAgICBpbnQgaGlnaCA9IGxpbWl0OwogICAgICAgIGludCB1ID0gMDsKICAgICAgICBpbnQgYW5zd2VyID0gMDsKCiAgICAgICAgd2hpbGUobG93IDw9IGhpZ2ggJiYgdSA9PSAwKSB7CiAgICAgICAgICAgIGludCBtaWQgPSAobG93ICsgaGlnaCkgLyAyOwogICAgICAgICAgICBpZighY2hlY2sobWlkLCBiLCBkKSkgewogICAgICAgICAgICAgICAgbG93ID0gbWlkICsgMTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmKG1pZCA9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgdSA9IDE7CiAgICAgICAgICAgICAgICAgICAgYW5zd2VyID0gbWlkOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmKCFjaGVjayhtaWQgLSAxLCBiLCBkKSkgewogICAgICAgICAgICAgICAgICAgIHUgPSAxOwogICAgICAgICAgICAgICAgICAgIGFuc3dlciA9IG1pZDsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaGlnaCA9IG1pZCAtIDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihhbnN3ZXIpOwogICAgfQp9