# import pypyjit # pypyjit.set_param('max_unroll_recursion=-1') from collections import * from itertools import * from functools import * from heapq import * import sys,math input = sys.stdin.readline N,D,T = map(int,input().split()) X = list(map(int,input().split())) Y = defaultdict(lambda:[]) for x in X: q,r = divmod(x,D) Y[r].append(q) ans = 0 for y in Y.values(): if len(y)==1: ans += 2*T+1 continue y.sort() n = len(y) ans += 2*T+1 for j in range(n-1): ans += min(y[j+1]-y[j],2*T+1) print(ans)