#include <bits/stdc++.h>
const int dx[] = {0, -1, 0, 1, -1, 1, 1, -1, -2, -2, 2, 2, -1, -1, 1, 1};
const int dy[] = {-1, 0, 1, 0, 1, 1, -1, -1, -1, 1, -1, 1, -2, 2, -2, 2};
using namespace std;
inline int sum(int x) { return (x * (x + 1)) / 2; }
int main(int argc, char const *argv[]) {
  int n, s;
  scanf("%d %d", &n, &s);
  vector<int> vol(n);
  for (int i = 0; i < n; i++) scanf("%d", &vol[i]);
  sort(vol.begin(), vol.end());
  int sum = 0;
  for (int i = 0; i < n - 1; i++) sum += vol[i];
  if (sum <= s)
    cout << "YES" << endl;
  else
    cout << "NO" << endl;
}
