#include
using namespace std;
bool canplacecows(long long int arr[],long long int n,long long int cows,long long int min_sep){
long long int lastcow=arr[0];
long long int cnt=1;
for(int i=1;i<n;i++){
if(arr[i]-lastcow>=min_sep){
lastcow=arr[i];
cnt++;
if(cnt==cows){
return true;
}
}
}
return false;
}
int main(){
long long int N;
cin>>N;
cout<<" ";
long long int C;
cin>>C;
cout<<endl;
long long int arr[N];
for(int i=0;i<N;i++){
cin>>arr[i];
}
long long int s=0;
long long int e=arr[N-1]-arr[0];
long long int ans=0;
while(s<=e){
long long int mid=(s+e)/2;
bool cowsplaced=canplacecows(arr,N,C,mid);
if(cowsplaced){
ans=mid;
s=mid+1;
}
else{
e=mid-1;
}
}
cout<<ans<<endl;
return 0;
}