from copy import deepcopy N,K,X,Y=map(int,input().split()) A=list(map(int,input().split())) Mod=998244353 T=15 Flag=[0]*(T+1) for a in A: Flag[a]=1 Z=[[0]*(T+1) for _ in range(T+1)] DP=deepcopy(Z) for a in range(T+1): DP[a][a]=Flag[a] for _ in range(N-1): ODP,DP=DP,deepcopy(Z) S=[0]*(T+1) for k in range(T+1): E=ODP[k] for x in range(T+1): S[x]+=E[x] S[x]%=Mod for i in range(T+1): if Flag[i]==0: continue E=DP[i] F=ODP[i] for x in range(T+1): E[x]=S[x^i]-F[x^i] B=0 for L in DP: B+=sum(L[X:Y+1]) B%=Mod print(B)