#include<iostream> #include<map> #include<vector> #include<algorithm> using namespace std; int N; long D,T; main() { cin>>N>>D>>T; map<long,vector<long> >M; for(int i=0;i<N;i++) { long X;cin>>X; M[(X%D+D)%D].push_back(X); } long ans=0; for(map<long,vector<long> >::iterator it=M.begin();it!=M.end();it++) { vector<long>tmp=it->second; sort(tmp.begin(),tmp.end()); long pre=-2e18; for(long x:tmp) { long L=x-D*T,R=x+D*T; if(pre>=L) { ans-=(pre-L+D)/D; } ans+=2*T+1; pre=R; } } cout<<ans<<endl; }