#include<bits/stdc++.h>
using namespace std;
const int maxl=1e9+10,maxn=5e4+10;
int ll,m,n,a[maxn];
inline int read(){
int x=0,f=1;
char c=getchar();
while(c>'9'||c<'0'){
if(c=='-')f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=((x<<1)+(x<<3))+c-'0';
c=getchar();
}
return x*f;
}
inline bool check(int x){
int now=0,sum=0;
for(int i=1;i<=n+1;i++){
if(a[i]-a[now]<x) sum++;
else now=i;
}
return sum<=m;
}
inline void Init(){
ll=read(),n=read(),m=read();
for(int i=1;i<=n;i++)a[i]=read();
a[n+1]=ll;
a[0]=0;
}
inline void Work(){
int l=1,r=ll;
while(l<r){
int mid=(l+r+1)>>1;
if(check(mid))l=mid;
else r=mid-1;
}
cout<<l<<endl;
}
int main(){
Init();
Work();
return 0;
}