#include<iostream>
using namespace std;
const int N=1e5;
int f[N],L,n,m;
bool check(int x){
int cnt=0,now=0;
for(int i=0;i<n;i++){
if(f[i]-now>=x)now=f[i];
else cnt++;
}
if(cnt<=m)return true;
else return false;
}
int main(){
scanf("%d%d%d",&L,&n,&m);
for(int i=0;i<n;i++)scanf("%d",&f[i]);
int l=0,r=L;
while(l<r){
int mid=l+r+1>>1;
if(check(mid)) l=mid;
else r=mid-1;
}
printf("%d",l);
return 0;
}