import sys #sys.setrecursionlimit(n) import heapq import re import bisect import random import math import itertools from collections import defaultdict, deque, OrderedDict from copy import deepcopy N, D, T = map(int, input().split()) L = deque(list(map(int, input().split()))) V = defaultdict(list) for l in L: x = (l + 10 ** 9) % D V[x].append((l + 10 ** 9) // D) count = 0 for v in V: a = V[v] a.sort() m = -(10 ** 9) for i in a: right = i + T left = i - T if m >= left: left = m + 1 count += right - left + 1 m = right print(count)