## https://yukicoder.me/problems/no/1538 def main(): N, K = map(int, input().split()) A = list(map(int, input().split())) for a in A: if a == K: print("Yes") return N1 = N // 2 N2 = N - N1 array1 = [] for bit in range(3 ** N1): b = bit p_count = 0 m_count = 0 ans = 0 for i in range(N1): a = b % 3 if a == 1: ans += A[i] p_count += 1 elif a == 2: ans -= A[i] m_count += 1 b //= 3 array1.append((p_count, m_count, ans)) array2 = [] for bit in range(3 ** N2): b = bit p_count = 0 m_count = 0 ans = 0 for i in range(N2): a = b % 3 if a == 1: ans += A[N1 + i] p_count += 1 elif a == 2: ans -= A[N1 + i] m_count += 1 b //= 3 array2.append((p_count, m_count, ans)) # p > 0 and m > 0 用 map1 = set() for _, _, ans in array2: map1.add(ans) # p > 0 and m == 0 用 map2 = set() for _, m, ans in array2: if m > 0: map2.add(ans) # p == 0 and m > 0 用 map3 = set() for p, _, ans in array2: if p > 0: map3.add(ans) # p == 0 and m == 0用 map4 = set() for p, m, ans in array2: if p > 0 and m > 0: map4.add(ans) for p, m, ans in array1: if p > 0 and m > 0: if (K - ans) in map1: print("Yes") return elif p > 0 and m == 0: if (K - ans) in map2: print("Yes") return elif p == 0 and m > 0: if (K - ans) in map3: print("Yes") return elif p == 0 and m == 0: if (K - ans) in map4: print("Yes") return print("No") if __name__ == "__main__": main()