#include <bits/stdc++.h>
using namespace std;
const int N = 10000;
vector<bool> f[N];
vector<int> pack;
int n, l, m, r;
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> l >> m >> r;
  l *= 2;
  m *= 2;
  r *= 2;
  for (int i = 0; i <= n; ++i) f[i] = vector<bool>(m + 10, false);
  for (int i = 0; i < n; ++i) {
    int weight;
    cin >> weight;
    pack.push_back(weight);
  }
  f[0][0] = true;
  for (int i = 0; i < n; ++i)
    for (int j = 0; j <= m; ++j) {
      if (!f[i][j]) continue;
      for (int k = r; k <= l / 2; ++k) {
        if (abs(j - k * pack[i]) <= m) f[i + 1][abs(j - k * pack[i])] = true;
        if (abs(j + k * pack[i]) <= m) f[i + 1][abs(j + k * pack[i])] = true;
      }
    }
  for (int i = 0; i <= m; ++i)
    if (f[n][i]) {
      cout << "Yes" << endl;
      return 0;
    }
  cout << "No" << endl;
  return 0;
}
