N,S,B=map(int,input().split()) H=list(map(int,input().split())) dp=[[-1 for _ in range(S+1)] for _ in range(N+2)] #道中でH_{i+1}に到達できない場合を知りたい dp[0][S]=H[0] for i in range(N): m=0 for j in reversed(range(S+1)): if dp[i][j]==-1:continue m=max(m,dp[i][j]) if j>0:dp[i][j-1]=max(dp[i][j]+B,dp[i][j-1]) if i!=N-1: if dp[i][j]>=H[i+1]:dp[i+1][j]=max(dp[i][j],dp[i+1][j]) if m>=H[i]:dp[i][S]=max(dp[i][S],H[i]) print("Yes" if dp[N-1].count(-1)!=S+1 else "No")