#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int m,n;
int a[100001];
bool findd(int x){
int num=0;
for(int i=1;i<=n;i++){
if(a[i]<a[i-1]+x){
continue;
}else{
++num;
}
}
if(num<m){
return false;
}else{
return true;
}
}
int main(){
cin>>n>>m;
int maxx=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
maxx=max(a[i],a[i-1]);
}
sort(a+1,a+1+n);
int l=1,r=maxx;
int ans=0;
while(l<r){
int mid=(l+r)/2;
if(findd(mid)==true){
// cout<<l<<' '<<mid<<' '<<r<<endl;
l=mid+1;
ans=mid;
}else{
// cout<<l<<' '<<mid<<' '<<r<<endl;
r=mid-1;
}
}
cout<<ans;
return 0;
}