#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e6+1;
ll n,m,l,ans,a[maxn];
inline int read(){
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=(x<<1)+(x<<3)+(c^48);
c=getchar();
}
return x*f;
}
bool pan(int x){
ll sum=0,now=0,shi=0;
while(shi<n+1){
shi++;
if(a[shi]-a[now]<x) sum++;
else now=shi;
}
return sum<=m;
}
int main(){
l=read();n=read();m=read();
if(n==0){
cout<<l;
return 0;
}
for(register ll i=1;i<=n;i++) a[i]=read();
a[n+1]=l;
ll la=1,lb=n;
while(la<=lb){
ll mid=la+(lb-la>>1);
if(pan(mid)){
la=mid+1;
ans=mid;
}
else lb=mid-1;
}
cout<<ans<<endl;
return 0;
}
输入4的输入数据,直接就输出的是100(错误),没按回车,为什么呢