#abc121d. [abc121_d]XOR World

[abc121_d]XOR World

题目描述

f(A,B)f(A, B) 表示 A,A+1,...,BA, A+1, ..., B 的异或和。找出 f(A,B)f(A, B) 的值。

什么是异或和?

整数 c1,c2,...,cnc_1, c_2, ..., c_n 的位异或和(记作 yy)定义如下:

  • 当将 yy 用二进制表示时,第 2k2^k 位(kgeq0k \\geq 0)的数字为 11 当且仅当 c1,c2,...cmc_1, c_2, ...c_m 中有奇数个整数的二进制表示在该位上为 11,否则为 00

例如,3355 的异或和为 66。(用二进制表示:011101 的异或和为 110

约束条件

  • 输入中的所有值都是整数。
  • 0leqAleqBleq10120 \\leq A \\leq B \\leq 10^{12}

输入

从标准输入读取数据,具体格式如下:

AA BB

输出

计算 f(A,B)f(A, B) 的值并打印出来。

示例输入 1

2 4

示例输出 1

5

2,3,42, 3, 4 在二进制中分别表示为 010, 011, 100。它们的异或和为 101,即十进制中的 55

示例输入 2

123 456

示例输出 2

435

示例输入 3

123456789012 123456789012

示例输出 3

123456789012