#include<iostream>
using namespace std;
int main(){
long long n,m,L;
cin>>L>>n>>m;
long long a[n+1],minn=L+1;
a[0]=0;
for(int i=1;i<=n;i++){
cin>>a[i];
minn=min(minn,a[i]-a[i-1]);
}
minn=min(L-a[n],minn);
long long l=minn,r=L;
long long mid=(l+r)/2;
long long ans=minn;
while(l<=r){
long long sum=0,last=0;
for(int i=1;i<=n;i++){
if(a[i]-a[last]<mid){
sum++;
}else{
last=i;
}
}
if(L-a[last]<=mid){
sum++;
}
if(sum>m){
r=mid-1;
}else{
if(sum<=m){
ans=mid;
}
l=mid+1;
}
mid=(l+r)/2;
}
cout<<ans;
return 0;
}