#include<bits/stdc++.h>
using namespace std;
int a[100010];
int main()
{
int n, m,mi=100000100;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++)
{
cin >> a[i];
mi = max(a[i], mi);
}
int l = 1, r = mi,mx=0;
while (l < r)
{
int mid = (l + r) / 2;
int ans = 0;
for (int i = 1; i <= n; i++) ans += a[i] / mid;
if (ans >= m)
l = mid + 1;
else
r = mid;
//cout << l << " " << r << " " << ans << endl;
}
cout << l-1;
// while循环最后是 l==r==115
//为什么115减1就对了,且115段数为6
//为什么115-1就能保证段数变成7
}