rt.
#include<bits/stdc++.h>
using namespace std;
long long zd,n,m;
long long d[50005];
long long maxv;
int check(int s){
long long cnt=0;
for(int i=0;i<=n;i++){
int yli=i;
while(i<n&&d[i+1]-d[yli]<s){
i++;
cnt++;
}
}
return cnt;
}
int main(){
cin>>zd>>n>>m;
for(long long i=1;i<=n;i++){
cin>>d[i];
maxv=max(maxv,d[i]);
}
d[0]=0,d[n+1]=zd;
long long l=0,r=zd;
long long ans=0;
while(l<=r){
long long M=(l+r)>>1;
if(check(M)<=m){
ans=M;
l=M+1;
}else{
r=M-1;
}
}
cout<<ans;
return 0;
}