#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL a[100005],n,m;
bool check(LL time,LL num){//判断n台电脑,是否都能使用t时间
LL res = 0;
for(int i = 1; i <= m; i ++) {
if(a[i] > time) {
num--; //整块电池直接用于某一台电脑
}else
res += a[i]; //碎片电池求和
if(res >= num * time)
return true;
}
return false;
}
int main(){
cin>>n>>m;
LL sum = 0;
for(int i=1;i<=m;i++){
cin>>a[i];
sum += a[i];
}
LL l = 0,r = sum;
while(l < r) {
LL mid = l + r + 1 >> 1;
if(check(mid,n))
l = mid;
else
r = mid - 1;
}
printf("%lld", l);
return 0;
}