#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
const double limit = 1e-5;
using namespace std;
double all[10001];
bool num(double M,int N,int K){
int res=0;
for(int i=0;i<N;i++){
res+=(all[i]/M);
if(res>=K)
return true;
}
return false;
}
int main(){
//freopen("E:\\Desktop\\in.txt","r",stdin);
int N,K;
while(scanf("%d%d",&N,&K)!=EOF){
double left,right,mid;
double max_len=0;
double tmp;
for(int i=0;i<N;i++){
scanf("%lf",&all[i]);
max_len=max(max_len,all[i]);
}
right=max_len;
left=0;//配合最后的-1 为了处理为0.00 的情况
while(right-left>limit){
mid=(left+right)/2;
if(num(mid,N,K)){
left=mid;
}
else{
right=mid;
}
}
printf("%.2lf\n",(double)right);
}
return 0;
}
#include <cstring>
#include <cmath>
#include <algorithm>
const double limit = 1e-5;
using namespace std;
double all[10001];
bool num(double M,int N,int K){
int res=0;
for(int i=0;i<N;i++){
res+=(all[i]/M);
if(res>=K)
return true;
}
return false;
}
int main(){
//freopen("E:\\Desktop\\in.txt","r",stdin);
int N,K;
while(scanf("%d%d",&N,&K)!=EOF){
double left,right,mid;
double max_len=0;
double tmp;
for(int i=0;i<N;i++){
scanf("%lf",&all[i]);
max_len=max(max_len,all[i]);
}
right=max_len;
left=0;//配合最后的-1 为了处理为0.00 的情况
while(right-left>limit){
mid=(left+right)/2;
if(num(mid,N,K)){
left=mid;
}
else{
right=mid;
}
}
printf("%.2lf\n",(double)right);
}
return 0;
}