#include
using namespace std;
bool possibleIt(int stall[],int n,int min_sep,int c ){
int last_stall=stall[0];
int count=1;
for(int i=1;i<n;i++){
if(stall[i]-last_stall >=min_sep){
count++;
last_stall=stall[i];
}
}
if(count>=c){
return true;
}
return false;
}
int main(){
int n,c;
cin>>n>>c;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
}
int l=0;
int ans=0;
int r=arr[n-1]-arr[0];
while(l<=r){
int mid=(l+r)/2;
bool ho_pae=possibleIt(arr,n,mid,c);
if(ho_pae){
l=mid+1;
ans=mid;
}
else {
r=mid-1;
}
}
cout<<ans<<endl;
return 0;
}