#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void umax(T &a, T b) {
  if (a < b) a = b;
}
const int maxn = 100005;
const int INF = 1e9 + 7;
inline void solve(void) {
  long long n, l, r, x;
  cin >> n >> l >> r >> x;
  long long a[n + 5];
  for (int i = (0); i < (n); i++) cin >> a[i];
  int ans = 0;
  int max_mask = (1 << n);
  for (int mask = 1; mask < max_mask; mask++) {
    long long min1 = INF, max1 = -1, sum = 0;
    for (int i = 0; i < n; i++) {
      if (mask & (1 << i)) {
        sum += a[i];
        max1 = max(max1, a[i]);
        min1 = min(min1, a[i]);
      }
    }
    if (sum >= l && sum <= r && (max1 - min1) >= x) {
      ans++;
    }
  }
  cout << ans;
}
void init() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
}
int main(int argc, const char *argv[]) {
  init();
  solve();
  return 0;
}
