#abc138f. [abc138_f]Coincidence

[abc138_f]Coincidence

問題文

整数 L,RL, R が与えられます。整数の組 (x,y)(x, y) (LleqxleqyleqR)(L \\leq x \\leq y \\leq R) であって、yyxx で割った余りが ytextXORxy \\text{ XOR } x に等しいものの個数を 109+710^9 + 7 で割ったあまりを求めてください。

textXOR\\text{ XOR } とは

整数 A,BA, B のビットごとの排他的論理和 atextXORba \\text{ XOR } b は、以下のように定義されます。

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

例えば、3textXOR5=63 \\text{ XOR } 5 = 6 となります (二進数表記すると: 011textXOR101=110011 \\text{ XOR } 101 = 110)。

制約

  • 1leqLleqRleq10181 \\leq L \\leq R \\leq 10^{18}

入力

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

LL RR

出力

条件を満たす整数の組 (x,y)(x, y) (LleqxleqyleqR)(L \\leq x \\leq y \\leq R) の個数を 109+710^9 + 7 で割ったあまりを出力せよ。


入力例 1

2 3

出力例 1

3

条件を満たす組は (2,2),(2,3),(3,3)(2, 2), (2, 3), (3, 3)33 通りです。


入力例 2

10 100

出力例 2

604

入力例 3

1 1000000000000000000

出力例 3

68038601

個数を 109+710^9 + 7 で割ったあまりを計算することを忘れないでください。