from collections import defaultdict def main(): N,K = map(int,input().split()) A = list(map(int,input().split())) if K in A: print("Yes");exit() s = set([]) B = A[:N//2] C = A[N//2:] c = [-1,0,1] S = defaultdict(list) for i in range(3**len(B)): cmx = 0; cmn = 0 val = 0 for j in range(len(B)): sig = i%(3**(j+1)) sig //= 3**j #print(i,j,sig) if sig == 0: #-1 val -= B[j] cmn = min(cmn, -1) elif sig == 2: #+1 val += B[j] cmx = max(cmx, 1) #print("VAL",val,cmx,cmn) if cmx == 1 and cmn == -1 and val == K: print("Yes");exit() S[val].append((cmx,cmn)) #print(S) T = defaultdict(list) for i in range(3**len(C)): cmx = 0; cmn = 0 val = 0 for j in range(len(C)): sig = i%(3**(j+1)) sig //= 3**j #print(i,j,sig) if sig == 0: #-1 val -= C[j] cmn = min(cmn, -1) elif sig == 2: #+1 val += C[j] cmx = max(cmx, 1) #print("VAL",val,cmx,cmn) if cmx == 1 and cmn == -1 and val == K: print("Yes");exit() T[val].append((cmx,cmn)) #print(T) for x in S: nokori = K - x for xmx, xmn in S[x]: for ymx,ymn in T[nokori]: if max(xmx,ymx) == 1 and min(xmn,ymn) == -1: print("Yes");exit() print("No") if __name__ == '__main__': main()