#include <bits/stdc++.h>
using namespace std;
int x[100005], n, c;
bool check(int d) {
int last = x[1];
for (int i = 2; i <= c; i++) {
bool ok = false;
for (int i = last + 1; i <= n; i++) {
if (x[i] - x[last] >= d) {
last = i;
ok = true;
break;
}
}
if (ok == false) {
return false;
}
}
return true;
}
int main(int argc, const char * argv[]) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> n >> c;
int littleL = INT_MAX;
for (int i = 1; i <= n; i++) {
cin >> x[i];
littleL = min(littleL, x[i]-x[i-1]);
}
sort(x+1, x+1+n);
int l = littleL, r = x[n] - x[1], ans = 0;
while (l <= r) {
int mid = (l + r) / 2;
if (check(mid)) {
ans = mid;
l = mid + 1;
} else {
r = mid - 1;
}
}
cout << ans << endl;
return 0;
}