#include <iostream>
using namespace std;
const int maxn=5e4+100;
int a[maxn];
int l,n,m;
int k;
bool judge(int d){
int cnt = 0;
if(a[0]>=d) cnt++;
int last=a[0];
for(int i = 1; i <= n; i++){
if(a[i]-last>=d){
cnt++;
last=a[i];
}
}
return cnt>=k;
}
int main(){
cin>>l>>n>>m;
for(int i = 0; i < n; i++){
cin>>a[i];
}
k=n-m+1;
a[n]=l;
int left=0;
int right=l;
int mid;
int res;
while(left<=right){
mid=(right-left)/2+left;
if(judge(mid)){
res=mid;
left=mid+1;
}else{
right=mid-1;
}
}
cout<<res;
return 0;
}