import sys from collections import defaultdict MOD = 998244353 def main(): N, K, X, Y = map(int, sys.stdin.readline().split()) A = list(map(int, sys.stdin.readline().split())) # Precompute allowed transitions for each element allowed = {a: [b for b in A if b != a] for a in A} # Initialize DP: prev[a] is a dictionary {xor_sum: count} prev = defaultdict(lambda: defaultdict(int)) for a in A: prev[a][a] = 1 for _ in range(N - 1): curr = defaultdict(lambda: defaultdict(int)) for a in prev: for x in prev[a]: cnt = prev[a][x] for b in allowed[a]: new_x = x ^ b curr[b][new_x] = (curr[b][new_x] + cnt) % MOD prev = curr result = 0 for a in prev: for x in prev[a]: if X <= x <= Y: result = (result + prev[a][x]) % MOD print(result) if __name__ == "__main__": main()