#include<bits/stdc++.h>
using namespace std;
long long l,n,k,a[1000010],ans;
bool check(long long x){
long long sum=0,w=0;
for(long long i=2;i<=n;i++){
if(a[i]-a[i-1]>x){
if(a[i]-a[i-1]%x==0){
sum+=(a[i]-a[i-1])/x-1;
}else{
sum+=(a[i]-a[i-1])/x;
}
}
}
if(sum<=k) return true;
else return false;
}
int main(){
cin>>l>>n>>k;
for(long long i=1;i<=n;i++){
cin>>a[i];
}
long long left=1,right=l;
while(left<=right){
long long mid=(left+right)/2;
if(check(mid)){
ans=mid;
right=mid-1;
}else{
left=mid+1;
}
}
cout<<ans;
return 0;
}
不知道为啥不对