#include<bits/stdc++.h>
using namespace std;
int minn[50010],a[50010],m,l;//idx=1,
bool compare(int oi) {
int i,o=0,iee=0;
for(i=1; i<=m; i++) {
if(a[i]-iee<oi)
o++;
else
iee=a[i];
}
if(l-iee<oi)o++;
return o<=m;
}
int main() {
int iee,n,jump=0,i,i2;
memset(minn,0x3f,sizeof(minn));
cin>>l>>n>>m;
cin>>a[1];
for(i=2; i<=n; i++) {
cin>>a[i];
// compare(a[i]-a[i-1],i);
}
sort(a+1,a+n+1);
int r=n,l2=1,mid;
while(r>l2){
mid=(r+l2)/2;
if(compare(mid))l2=mid+1;
else r=mid;
}
cout<<l2;
// for(i=1; i<=m; i++) {
// a[s[i]]=-1;
// }
// for(i=1; i<n-m; i++) {
// if(a[i+1]==-1) {
// iee=a[i];
// i++;
// continue;
// } else
// iee=a[i];
// jump=max(a[i+1]-iee,jump);
// }
// for(i=1; i<=n; i++)cout<<minn[i]<<" ";
// cout<<jump;
return 0;
}