#include <bits/stdc++.h>
using namespace std;

const int W = 2e5 + 1;
int cnt[W];
int n, w;
 
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin >> n >> w;
    for (int i = 0; i < n; ++i) {
        int x;
        cin >> x;
        ++cnt[x];
    }
    for (int i = 1; i <= w; ++i) {
        auto carry = (cnt[i] - 1) / 2;
        if (carry) {
            cnt[2 * i] += carry;
            cnt[i] -= 2 * carry;
        }
    }
    bitset<W> knapsack = 1;
    for (int i = 1; i <= w; ++i)
        for (int j = 0; j < cnt[i]; ++j)
            knapsack |= knapsack << i;
    cout << (knapsack.test(w) ? "YES" : "NO");
}