#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=100010;
ll cd,n,m,ans,a[N];
bool fun(ll mid){
ll sum=m;
ll last=0;
for(ll i=1;i<n;i++){
if(sum<0){
break;
}
if(a[i]-last<=mid){
last=a[i];
}
else{
last+=m;
i--;
sum--;
}
}
if(sum>=0) return 1;
else return 0;
}
int main(){
cin>>cd>>n>>m;
if(m==0){
cout<<cd<<endl;
return 0;
}
for(int i=1;i<=n;i++) cin>>a[i];
ll l=0,r=cd,mid;
while(l<=r){
mid=l+r>>1;
if(fun(mid)==1){
ans=mid;
r=mid-1;
}
else l=mid+1;
}
cout<<ans<<endl;
return 0;
}