http://bailian.openjudge.cn/practice/2774/
#include <iostream>
using namespace std;
int len[10001]={0},n,k;
int input(){
cin>>n>>k;
int max=0;
for(int i=0;i<n;++i){
cin>>len[i];
if(len[i]>max)
max=len[i];
}
return max;
}
int solve(int max){
int l = 1;
int r = max;
while(l<=r){
int mid = (l+r)/2;
int sum = 0;
for(int i=0;i<n;++i){
sum+=len[i]/mid;
}
if(sum<k) r = mid-1;
else if(sum>=k) l = mid+1;
}
return r;
}
int main(){
int p=input();
cout<<solve(p)<<endl;
return 0;
}