#include <stdio.h>
int func(int f[],int x,int n);
int main()
{
int len,num,add;
int i;
int x;
int f[100005]={0};
int l,m,r;
int ans;
int M;
scanf("%d %d %d",&len,&num,&add);
for(i=0;i<num;i++){
scanf("%d",&x);
f[i]=x;
}
l=0;
r=len;
while(l<=r){
m=l+(r-l)/2;
M=func(f,m,num);
if(M>add){
l=m+1;
}else{
ans=m;
r=m-1;
}
}
printf("%d",ans);
return 0;
}
int func(int f[],int x,int n)
{
int i;
double h=2;
double res;
int ans=0;
int dis=0;
int s;
for(i=0;i+1<n;i++){
s=f[i];
dis=f[i+1]-s;
if(dis>x){
res=dis/h;
if(res<x){
ans++;
}else{
while(h<dis){
res=dis/h;
if(res<=x){
ans=ans+h-1;
h=2;
break;
}else{
h++;
}
}
}
}
}
return ans;
}