n, D, T = map(int, input().split()) xs = list(map(int, input().split())) from collections import defaultdict groups = defaultdict(list) for x in xs: r = x % D start = x - T * D end = x + T * D groups[r].append((start, end)) ans = 0 for r in groups: intervals = groups[r] if not intervals: continue # Sort intervals by their start value intervals.sort() merged = [] current_start, current_end = intervals[0] for s, e in intervals[1:]: if s <= current_end: # Merge the intervals current_end = max(current_end, e) else: merged.append((current_start, current_end)) current_start, current_end = s, e # Add the last merged interval merged.append((current_start, current_end)) # Calculate the number of elements in each merged interval for s, e in merged: count = (e - s) // D + 1 ans += count print(ans)