#include <bits/stdc++.h>
using namespace std;
long long int mod1 = pow(10, 9) + 7;
int mod2 = 998244353;
long long int inf = 1e9;
long long int maxxy = 1e6 + 9;
const double PI = 3.141592653589793238;
unsigned long long int sumcons(unsigned long long int a,
                               unsigned long long int b) {
  if (a == 0) {
    return (b * (b - 1)) / 2;
  } else {
    unsigned long long int zzz = (b * (b + 1)) / 2;
    zzz += ((a - 1) * b);
    return zzz;
  }
}
long long int power(long long int x, long long int y, long long int pp) {
  long long int res = 1;
  x = x % pp;
  while (y > 0) {
    if (y & 1) res = (res * x) % pp;
    y = y >> 1;
    x = (x * x) % pp;
  }
  return res;
}
long long int modInverse(long long int n, long long int pp) {
  return power(n, pp - 2, pp);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int n;
  cin >> n;
  long long int k;
  cin >> k;
  vector<long long int> a(n);
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  vector<bool> dp(k + 1, false);
  for (int stones = 0; stones <= k; ++stones) {
    for (auto x : a) {
      if (stones >= x && !dp[stones - x]) {
        dp[stones] = true;
      }
    }
  }
  if (dp[k])
    cout << "YES"
         << "\n";
  else
    cout << "NO"
         << "\n";
  return 0;
}
