#include<bits/stdc++.h>
const int N = 1e8;
#define read(a) {char c;while((c=getchar())>47) a=a*10+(c^48);}
typedef long long ll;
using namespace std;
int n, m, t;
int a, b, c;
double g[N];
int dp[N];
int judged(double x)
{
int k = 0;
for (int i = 0; i < n; i++)
{
k +=floor(g[i] / x);
}
return k >= m;
}
int main()
{
cin >> n >> m;
double mx=0;
for (int i = 0; i < n; i++)
{
cin >> g[i];
mx = g[i]> mx?g[i]:mx;
}
double l = 0, r = mx, mid;
while (r - l > 1e-4)
{
mid = (l + r) / 2;
if (judged(mid))
{
l = mid;
}
else
{
r = mid;
}
}
printf("%.2lf", l);
return 0;
}
最后两个点没过