#include <algorithm>
#include <iostream>
#define ll long long
using namespace std;
ll n, k;
ll a[100005];
// 二分答案
ll check(ll l) {
ll cnt = 0;
for (ll i = 0; i < n; i++) {
if (l < a[i]) {
cnt += a[i] / l;
}
}
return cnt - k;
}
int main() {
cin >> n >> k;
cin >> a[0];
ll min = a[0];
ll max = a[0];
for (ll i = 1; i < n; i++) {
cin >> a[i];
if (min > a[i])
min = a[i];
if (max < a[i])
max = a[i];
}
// 开始二分
ll left = 1;
ll right = max - 1;
ll pre = 0;
while (left <= right) {
ll mid = (left + right) / 2;
ll ret = check(mid);
if (ret == 0) {
pre = mid;
left = mid + 1;
}
if (ret > 0) {
left = mid + 1;
}
if (ret < 0) {
right = mid - 1;
}
}
cout << pre;
return 0;
}