#include <stdio.h>
#include <stdbool.h>
#define N 100010
int a[N];
int n,target;
bool sum(int j)
{
int res=0;
for (int i=0;i<n;i++)
{
res+=a[i]/j;
}
if (res>=target) return true;
else
return false;
}//res 是总和
int main()
{ scanf("%d %d",&n,&target);
for (int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int left=0;
int right=100000001;
int middle;
while (left<right) //只要middle满足条件,就继续扩大middle的值,直到sum(middle)不满足条件,再往回寻找
{
middle =(left+right+1)/2;//加1防止递归进行不下去
if (sum(middle))
left =middle;
else
right =middle-1;
}
printf("%d",left);
}