#include <bits/stdc++.h>
using namespace std;
int l,n,m,maxlen=-1;
int a[50002]={};
int main(){
a[0]=0;
cin>>l>>n>>m;
a[n+1]=l;
for(int i=1; i<=n; i++)cin>>a[i];
for(int i=0; i<=n; i++){
maxlen=max(maxlen,(a[i+1]-a[i]));
}
int mid,le=1,ri=maxlen;
int cnt=0;
while(le<ri){
//cout<<"l="<<le<<" "<<"r="<<ri<<endl;
cnt=0;
mid=(le+ri)/2;
//cout<<"mid="<<mid<<endl;
for(int i=0; i<=n; i++){
if((a[i+1]-a[i])==mid)continue;
cnt+=(a[i+1]-a[i])/mid;
}
if(le+1==ri){
cnt=0;
for(int i=0; i<=n; i++){
if((a[i+1]-a[i])==le)continue;
cnt+=(a[i+1]-a[i])/le;
}
if(cnt<=m){
cout<<le;
return 0;
}else{
cout<<ri;
return 0;
}
}
if(cnt>m){
le=mid+1;
}else if(cnt<m){
ri=mid-1;
}else{
le=mid;
}
if(le==ri){
cout<<le;
return 0;
}
}
cout<<le;
return 0;
}