from collections import deque, defaultdict, Counter from bisect import bisect_left, bisect_right from itertools import permutations, combinations from functools import cmp_to_key, cache from heapq import heappop, heappush import math, sys import pypyjit pypyjit.set_param('max_unroll_recursion=-1') sys.setrecursionlimit(10**7) _int = lambda x: int(x)-1 MOD = 998244353 INF = 1<<62 Yes, No = "Yes", "No" N, S, B = map(int, input().split()) H = list(map(int, input().split())) cur = 0 h = H[0]+S*B mx = 0 for i in range(N): if h < H[i]: h = mx+S*B if h < H[i]: print(No) exit() mx = 0 else: mx = max(mx, H[i]) print(Yes)