#arc129a. [arc129_a]Smaller XOR

[arc129_a]Smaller XOR

問題文

整数 N,L,RN,L,R が与えられます. 以下の条件を両方満たす整数 xx の個数を数えてください.

  • LleqxleqRL \\leq x \\leq R
  • (xoplusN)<N(x \\oplus N) < N (ここで oplus\\oplus はビット単位 mathrmXOR\\mathrm{XOR} 演算を表す)

ビット単位 mathrmXOR\\mathrm{XOR} 演算とは

整数 A,BA, B のビット単位 mathrmXOR\\mathrm{XOR}AoplusBA \\oplus B は、以下のように定義されます。

  • AoplusBA \\oplus B を二進表記した際の 2k2^k (kgeq0k \\geq 0) の位の数は、A,BA, B を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、3oplus5=63 \\oplus 5 = 6 となります (二進表記すると: 011oplus101=110011 \\oplus 101 = 110)。

制約

  • 1leqNleq10181 \\leq N \\leq 10^{18}
  • 1leqLleqRleq10181 \\leq L \\leq R \\leq 10^{18}
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN LL RR

出力

答えを出力せよ.


入力例 1

2 1 2

出力例 1

1

x=1x=1 の場合,LleqxleqRL \\leq x \\leq R は満たしますが,(xoplusN)<N(x \\oplus N) < N は満たしません. x=2x=2 の場合,両方の条件を満たします. 他に条件を満たす xx は存在しません.


入力例 2

10 2 19

出力例 2

10

入力例 3

1000000000000000000 1 1000000000000000000

出力例 3

847078495393153025