#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int n, c;
const int maxn = 1000010;
long long lx[maxn];
int main()
{
while(cin >> n >> c)
{
for(int i = 0; i < n; i++)
scanf("%I64d",&lx[i]);
sort(lx,lx+n);
long long l = 0, r = lx[n - 1] - lx[0];
while(l <= r)
{
long long mid = (l + r) >> 1;
int cnt = 1, point = 0;
for(int i = 1; i < n ; i++)
{
if(lx[i] - lx[point] >= mid)
{
cnt++;
point = i;
}
}
if(cnt >= c) l = mid + 1;
else r = mid - 1;
}
cout << l - 1 << endl;
}
return 0;
}