from collections import* n,s,b,*h=map(int,open(0).read().split()) ndp={h[0]:s} for j in h[1:]: ndp,dp={},ndp f=0 for k,v in dp.items(): if k>=j: if k in ndp: ndp[k]=max(ndp[k],v) else: ndp[k]=v if j in ndp: ndp[j]=max(ndp[j],s) else: ndp[j]=s f=1 continue x=(j-k)//b for nv in range(x,x+5): if nv>v: break nk=k+nv*b if nk>=j: if nk in ndp: ndp[nk]=max(ndp[nk],nv) else: ndp[nk]=nv if j in ndp: ndp[j]=max(ndp[j],s) else: ndp[j]=s f=1 break if f<1: exit(print('No')) print('Yes')