code
#include<bits/stdc++.h>
using namespace std;
long long a[300001];
long long n,m;
bool judge(int x){
int sum=0;
for(int i=1;i<=n;++i){
if(a[i]%x!=0)++sum;
sum+=a[i]/x;
}
return sum<=m;
}
int find(int l,int r){
long long mid;
while(l<r){
mid=(l+r)/2;
int MAX=judge(mid);
if(MAX==true)r=mid;
if(MAX==false)l=mid+1;
}
return r;
}
int main(){
cin>>m>>n;
int M=0;
for(int i=1;i<=n;i++){
cin>>a[i];
M=max(m,a[i]);
}
int ans;
ans=find(1,M);
cout<<ans;
}