N, D, T = gets.split.map(&:to_i)
X = gets.split.map(&:to_i)
ans = X.group_by {|x| x % D}.values.map {|y|
  y.sort.inject([0, -Float::INFINITY]) {|(c, p), z|
    [c + 2 * T + 1 - [(p - z + 2 * D * T) / D + 1, 0].max, z]
    }[0]
}.inject(:+)
puts ans