#include<bits/stdc++.h>
using namespace std;
int loo;
int n;
int m;
int a[100011];
int l;
int r;
int mid;
int nex;
int cs;
int check(int k){
nex=k;
cs=0;
for(int i=2;i<=n;i++){
if(a[i]>nex){
nex=a[i]+k;
}
else{
cs++;
}
}
if(cs<=m){
return 1;
}
else{
return 0;
}
}
int main(){
cin>>loo;
cin>>n;
cin>>m;
for(int i=1;i<=n;i++){
cin>>a[i+1];
}
n+=2;
a[n]=loo;
l=0;
r=a[n];
mid=(l+r)/2;
while(l<=r){
mid=(l+r)/2;
if(check(mid)==1){
l=mid+1;
}
else{
r=mid-1;
}
}
cout<<mid;
}