#include<cstdio>
#include<algorithm>
using namespace std;
const long length = 100001;
long long n,k,L,munmin = 1e+9;
long long N[length];
long long mun(long long l)
{
long long Num = 0;
for(int i =0;i<n;i++) Num += N[i] / l;
return Num;
}
void search(long long l,long long r)
{
long long mid = (l+r)/2;
//printf("l = %d",l);printf("r = %d\n",r);
if (l == r+1)
{
L = r;
return ;
}
if (mun(mid)>=k)search(l,mid);
if (mun(mid)<k)search(mid,r);
}
int main()
{
long long N_max = 0;
scanf("%lld%lld",&n,&k);
for(int i = 0;i<n;i++){scanf("%lld",&N[i]);N_max = max(N_max,N[i]);}
search(N_max,1);
printf("%lld",L);
return 0;
}