#include<bits/stdc++.h>
using namespace std;
int l,n,k;
int sh[100005];
int sq[100005];
bool qq(int x,int y){
if(x>y) return 1;
else return 0;
}
int main(){
scanf("%d%d%d",&l,&n,&k);
for(int i=1;i<=n;i++){
scanf("%d",&sh[i]);
}
sort(sh+1,sh+n+1);
for(int i=1;i<n;i++){
sq[i]=sh[i+1]-sh[i];
}
sort(sq+1,sq+n,qq);
int l=1,r=sq[1];
while(l<r){
int m=(l+r)>>1;
int s=k;
int t=1;
int maxn=0;
while(s>0){
if((sq[t]-1)/m==0){
maxn=sq[t];
break;
}
if(s>(sq[t]-1)/m){
t++;
s=s-((sq[t]-1)/m);
}
else break;
}
if(sq[t+1]<=m&&sq[t]-m*s<=m&&maxn<=m){
r=m;
}
else{
l=m+1;
}
}
printf("%d",l);
return 0;
}