#include<iostream>
using namespace std;
int l,n,m,A[110000],x=1e9,y=0,mid,ans;
bool check(){
int begin=0,cnt=0;
for(int i=1;i<=n;i++){
if(A[i]-A[begin]<mid){
cnt++;
}else{
begin=i;
}
}
return (cnt<=m);
}
int main(){
cin>>l>>n>>m;
A[0]=0;
A[n+1]=l;
for(int i=1;i<=n;i++){
cin>>A[i];
x=min(x,A[i]-A[i-1]);
}
y=l;
x=1;
while(x<=y){
mid=(x+y)/2;
if(check()){
x=mid+1;
ans=mid;
}else{
y=mid-1;
}
}
cout<<ans;
return 0;
}