using namespace std;
int cut(int a);
bool f(int lo);
int n,k,l,wood[100005];
int main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%d",&wood[i]);
}
sort(wood+1,wood+n);
printf("%d",cut(wood[n]));
}
int cut(int a){
int l=0,r=a+1;
while(l+1<r){
int mid=(l+r)/2;
if(f(mid)) l=mid;
else r=mid;
return l;
}
}
bool f(int lo){
int num=0;
for(int i=1;i<=n;i++){
num+=wood[i]/lo;
}
if(num>=l) return true;
else return false;
}