#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxn 1000010
#define INF 1e9
int a[maxn], n, c;
bool p(int d)
{
int k = 0, last = -INF;
for (int i = 1; i <= n; i++)
{
if (a[i] - last >= d)
{
last = a[i];
k++;
}
}
return k >= c;
}
int main()
{
cin >> n >> c;
for (int i = 1; i <= n; i++)
cin >> a[i];
sort(a + 1, a + n + 1);
int l = 0, r = a[n], ans=-9999, mid;
//这里r如果改为r=n就90分,改为=a[n]就100分
while (l <= r)
{
mid = l + (r - l)/2;
if (p(mid))
{
ans = max(ans, mid);
l = mid + 1;
}
else
r = mid - 1;
}
cout << ans;
return 0;
}