#include using namespace std; int main(){ using ll=long long; ll inf=1e18; ll n,l,k; cin>>n>>l>>k; vector a(n+1); a[0]=0; for (int i=1;i<=n;i++) cin>>a[i]; a.push_back(l); a.push_back(inf); auto f=[&](ll x){ vector g(n+3,inf); ll mval=inf; int r=0; ll len=0; ll mcnt=-inf; for (int i=0;i<=n;i++){ while (a[r]-a[i]=k-1; }; ll L=0,R=2e9; while (R-L>1){ ll mid=(L+R)/2; if (f(mid)) L=mid; else R=mid; } cout<