#include using namespace std; using Int = long long; template inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template inline void chmax(T1 &a,T2 b){if(a void drop(const T &x){cout<>n>>l>>r; vector as(n); for(Int i=0;i>as[i]; const Int MAX = 62; vector< vector > S(MAX+1); S[MAX].emplace_back(0); S[MAX].emplace_back(n); vector< set > C(MAX+1); for(Int i=MAX-1;i>=0;i--){ C[i].emplace(0); C[i].emplace(1); for(Int j=0;j+1<(Int)S[i+1].size();j++){ Int p=S[i+1][j],q=S[i+1][j+1]; S[i].emplace_back(p); vector vs(q-p); for(Int k=p;k>i)&1; if(vs==vector(q-p,0)) continue; if(vs==vector(q-p,1)) continue; auto us(vs); us.erase(unique(us.begin(),us.end()),us.end()); if(us.size()>2) drop(0); for(Int k=p;k+1Int{ vector dp(2,0); dp[1]=1; for(Int i=MAX-1;i>=0;i--){ Int b=(k>>i)&1; vector nx(2,0); for(Int c:C[i]){ for(Int t=0;t<2;t++){ if(t&&c>b) continue; Int nt=t&&(b==c); nx[nt]+=dp[t]; } } swap(dp,nx); } return dp[0]+dp[1]; }; Int ans=calc(r); if(l) ans-=calc(l-1); cout<