uses crt;
var i,n,k,l,r,mid,dem:integer;
a:array[1..100005] of integer;
kt:boolean;
begin
l:=1;
r:=0;
dem:=0;
read(n);
read(k);
for i:=1 to n do
begin
read(a[i]);
if (a[i]>r) then r:=a[i]
end;
while (l<=r) do
begin
mid:=(l+r) div 2;
for i:=1 to n do dem:=dem+(a[i] div mid);
if (dem>=k) then kt:=true;
if (kt=true) then l:=mid+1 else begin kt:=false;
r:=mid-1;
end;
end;
write((l-1)/2:0:0);
delay (5000);
readln;
end.