#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int main() { int N, M, X, Y, Z; cin >> N >> M >> X >> Y >> Z; vector A(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } ll dp[N + 1][M + 1][M * Z + 1]; memset(dp, 0, sizeof(dp)); dp[0][0][0] = 1; int rc = 0; for (int i = 0; i < N; ++i) { int a = A[i]; if (a < X) { memcpy(dp[i + 1], dp[i], sizeof(dp[i])); ++rc; } if (a <= Y) { memcpy(dp[i + 1], dp[i], sizeof(dp[i])); continue; } for (int m = M - 1; m >= 0; --m) { for (int j = M * Z - a; j >= 0; --j) { dp[i + 1][m + 1][j + a] += dp[i][m][j]; } } } ll ans = 0; for (int m = 1; m <= M; ++m) { fprintf(stderr, "m: %d, cnt: %lld\n", m, dp[N][m][m * Z]); ans += dp[N][m][m * Z]; } if (N - rc > M) { cout << "Handicapped" << endl; } else if (ans == 0) { cout << ans << endl; } return 0; }