rt
#include<bits/stdc++.h>
#define ull unsigned long long
#define ll long long
using namespace std;
int l,n,k;
int a[100005];
bool judge(int x){
int tot=0;
int i=0,now=0;
while(i<n){
i++;
if(a[i]-now>x){
tot+=(a[i]-now)/x;
now=a[i];
}else{
now=a[i];
}
}
if(tot<=k)return true;
else return false;
}
int main(){
cin>>l>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
int left=1,right=l,mid,ans;
while(left<=right){
mid=(left+right)/2;
if(judge(mid)){
ans=mid;
right=mid-1;
}else{
left=mid+1;
}
}
cout<<ans;
return 0;
}