#include <bits/stdc++.h>
using namespace std;
long long power(long long a, long long n) {
  long long p = 1;
  while (n > 0) {
    if (n % 2) {
      p = p * a;
    }
    n >>= 1;
    a *= a;
  }
  return p;
}
long long power(long long a, long long n, long long mod) {
  long long p = 1;
  while (n > 0) {
    if (n % 2) {
      p = p * a;
      p %= mod;
    }
    n >>= 1;
    a *= a;
    a %= mod;
  }
  return p % mod;
}
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long lcm(long long a, long long b) { return a * (b / gcd(a, b)); }
const long long N = 2001;
long long dp[N][N];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long t = 1;
  while (t--) {
    memset(dp, 0, sizeof(dp));
    long long n, h, l, r;
    cin >> n >> h >> l >> r;
    long long arr[n];
    long long sum = 0;
    for (long long i = 0; i < n; i++) {
      cin >> arr[i];
    }
    for (long long i = 0; i < n; i++) {
      sum = sum + arr[i];
      sum = sum % h;
      for (long long j = 0; j <= i + 1; j++) {
        dp[i + 1][j] =
            max(dp[i][j], j ? dp[i][j - 1] : 0) +
            (((sum - j % h + h) % h >= l) && ((sum - j % h + h) % h <= r));
      }
    }
    long long ans = INT_MIN;
    for (long long i = 0; i < n + 1; i++) {
      ans = max(ans, dp[n][i]);
    }
    cout << ans << "\n";
  }
  return 0;
}
