#include<iostream>
using namespace std;
const int N=100010;
int n,m,d;
int q[N];
bool check(int x) {
int cnt=0;
int i=1,now=0;
while(i<n) {
int k=q[i]-q[now];
if(k>x) {
if(k%x==0) cnt+=k/x-1;
else cnt+=k/x;
now=i;
i++;
}
else {
now=i;
i++;
}
}
if(cnt<=m) return true;
else return false;
}
int main() {
cin>>d>>n>>m;
for(int i=0; i<n; i++)
cin>>q[i];
int l=0,r=d;
int ans=0;
while(l<=r) {
int mid=l+r>>1;
if(check(mid))
ans=mid,r=mid-1;
else
l=mid+1;
}
cout<<ans;
}