#include #include #include #include #include #include #include #include #include #include #define mkp make_pair #define mkt make_tuple #define rep(i,n) for(int i = 0; i < (n); ++i) using namespace std; typedef long long ll; const ll MOD=1e9+7; int rais[63]; ll nthbit(ll x,ll n){ if(x>>n&1) return 1; else return 0; } ll dp[63][2][2]; int main(){ int N; ll L,R; cin>>N>>L>>R; vector A(N); rep(i,N) cin>>A[i]; for(int i=0;i=0;j--){ if(nthbit(A[i],j)!=nthbit(A[i+1],j)){ if(nthbit(A[i],j)){ if(rais[j]==-1){ cout<<0<0;i--){ for(int j=0;j<2;j++) for(int k=0;k<2;k++){ for(int l=0;l<2;l++){ ll val=dp[i][j][k]; int nj=j,nk=k; if(val==0) continue; if(j==0&&l==0&&nthbit(L,i-1)) continue; if(k==0&&l==1&&nthbit(R,i-1)==0) continue; if(rais[i-1]==1&&l==0) continue; if(rais[i-1]==-1&&l==1) continue; if(l==1&&nthbit(L,i-1)==0) nj=1; if(l==0&&nthbit(R,i-1)) nk=1; dp[i-1][nj][nk]+=val; } } } ll ans=0; for(int j=0;j<2;j++) for(int k=0;k<2;k++) ans+=dp[0][j][k]; cout<