from collections import deque n, m, l = [int(x) for x in input().split()] a = [int(x) for x in input().split()] d = deque() for i in range(n): d.append(a[i]) mix = [int((a[i] + l)/2) for i in range(n)] temp = [] Noflag = True while len(mix) > 1: d.popleft() key = 2*m - mix[0] mix = mix[1:] if m in mix or key in d: print("yes") Noflag = False break elif mix[0] < m: temp = [int((i + mix[0])/2) for i in d] mix = temp.copy() if Noflag: print("No")