//构造一个单调的函数,且函数值容易求,这时问题的解可以通过二分来求出
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1000001;
int n,m;
int a[N];
ll pre[N];
int maxx;
inline ll f(int mid){
ll cnt=0;
return cnt;
}
int main(){
maxx=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(a[i]>maxx) maxx=a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++) {
pre[i]=pre[i-1]+a[i];
}
ll l=0,r=maxx,mid; //l和r的取值包含二分答案的边界(l和r都可能是答案)
while(l<=r){
mid=(l+r)/2;
ll tem=f(mid);
if(tem>=x / tem<=x) ans=mid,l=mid+1; //用ans表示答案,迭代时只用管l和r
else r=mid-1;
}
printf("%d\n",ans);
return 0;
}