import sys input = lambda : sys.stdin.readline().rstrip() sys.setrecursionlimit(2*10**5+10) write = lambda x: sys.stdout.write(x+"\n") debug = lambda x: sys.stderr.write(x+"\n") writef = lambda x: print("{:.12f}".format(x)) n,K = list(map(int, input().split())) a = list(map(int, input().split())) a0 = a[:n//2] a1 = a[n//2:] l0 = {} l1 = {} def sub(a): res = {} for b in range(pow(3,len(a))): val = 0 p = m = 0 for i in range(len(a)): if b%3==0: val += a[i] p += 1 elif b%3==1: val -= a[i] m += 1 b //= 3 res.setdefault(val, set()) vv = (p>0) | (2*(m>0)) res[val].add(vv) return res l0 = sub(a0) l1 = sub(a1) for k,v in l0.items(): if K-k in l1: ss = v|l1[K-k] if 3 in ss or (1 in v and 2 in l1[K-k]) or (2 in v and 1 in l1[K-k]): print("Yes") break else: if K in a: print("Yes") else: print("No")