//* Problem  : 1184 - Cable master
//* Contest  : acm.timus.ru
//* Origin   : NEERC_2001
//* Type     : Solution
//* Date     : 2007.08.24
//* Author   : alt
//* Language : C++
//* Compiler : Microsoft Visual C++ 6.0
//* Algoritm : Binary Search

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

#define EPS 0.00001

double a[10000];
int n, k;

double get_pieces(double size)
{
	double res = 0;
	for (int i = 0; i < k; i++)
			res += floor(a[i] / size);
	return res;
}

double solve()
{
	double lb = 1E-4, rb = 1000000, mb, k; 
	while (rb - lb > EPS)
	{
		mb = (rb+lb)/2.0;
		k = get_pieces(mb);
		if (k < n) rb = mb;
			else lb = mb;
	}
	return mb;
}

int main()
{
	int i, nt; double res;
	scanf("%d %d", &k, &n);
	for (i = 0; i < k; i++)
		scanf("%lf", &a[i]);
	res = solve();
	if (res < 0.01) res = 0.0;
	res += 0.00001;
	printf("%.2lf\n", (int(res*100)+0.01)/100.0);
	return 0;
}