#include #include #include #include int main() { using namespace std; int n, d, t; cin >> n >> d >> t; map> mp; while (n--) { int x; cin >> x; mp[(x % d + d) % d].push_back(x); } long long ans = 0; for (auto [ignore, vec] : mp) { sort(vec.begin(), vec.end()); long long left = vec[0] - t * d, right = vec[0] + t * d; for (long long e : vec) { if (right < e - t * d) { ans += (right - left) / d + 1; left = e - t * d; } right = e + t * d; } ans += (right - left) / d + 1; } cout << ans << endl; }