#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e6;
int ans,L,n,k,q,road[N];
bool chk(int x){
int s=0,y=1;
if(k<=0) return 0;
for(int i=2;i<=n;i++){
if(road[i]-road[y]>x){
y=i;
}
else{
y+=x;
i--;
s++;
}
}
return s<=k;
}
int main(){
scanf("%d%d%d",&L,&n,&k);
for(int i=1;i<=n;i++) scanf("%d",&road[i]);
int l=1,r=L;
while(l<=r){
int mid=(l+r)/2;
printf("mid= %d\n",mid);
if(chk(mid)) ans=mid,r=mid-1;
else l=mid+1;
}
printf("%d",ans);
return 0;
}