#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n,m,a[maxn];
int sum=0,max_len=-1;
bool check(int x){
int tot=0;
for(int i=1;i<=n;i++){
tot+=a[i]/x;
}
if(tot>=m){
return true;
}
return false;
}
int max(int a,int b){
return a>b?a:b;
}
int main(){
memset(a,0,sizeof(a));
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
max_len=max(max_len,a[i]);
sum+=a[i];
}
if(sum<m){
cout<<0<<endl;
return 0;
}
int l=1,r=max_len;
while(l<r){
int mid=l+((r-l+1)>>1);
if(check(mid)){
l=mid;
}
else{
r=mid-1;
}
}
cout<<l<<endl;
return 0;
}