#include<bits/stdc++.h>
using namespace std;
const int N=5*1e4;
int d[N];
int l,n,m,max,dis;
bool f(int mid){
int s=0,now=0;
d[0]=0;
for(int i=1;i<=n;i++){
if(d[i]-d[now]<mid) s++;
else now=i;
}
if(l-d[n]<mid) s++;
if(s>m) return false;
else return true;
}
int main(){
scanf("%d%d%d",&l,&n,&m);
if(n==0){printf("%d",l); return 0;}
for(int i=1;i<=n;i++) scanf("%d",&d[i]);
int left=0,right=l/(n-m),mid;
while(left<right){
mid=left+(right-left)/2;
if(f(mid)){left=mid+1; dis=mid;}
else right=mid;
}
printf("%d",dis);
return 0;
}