求 ∑i=0ni⊕x(modp)\sum_{i=0}^ni\oplus x \pmod p∑i=0ni⊕x(modp),其中 ⊕\oplus⊕ 是异或,质数 p=109+7p=10^9+7p=109+7。
输入
输入一行两个整数 n,x(1≤n,x≤1012)n,x(1\le n,x\le10^{12})n,x(1≤n,x≤1012)
输出
输出一行一个整数,代表你的答案
样例
4 5
23
提示
定义两个整数的异或 a⊕ba\oplus ba⊕b 为先将 a,ba,ba,b 转化为二进制,然后对每一位,若 a,ba,ba,b 该位不同则该位结果为 111,否则为 000,各位都这么操作后得到结果。如 3⊕5=(011)2⊕(101)2=(110)2=63\oplus 5=(011)_2\oplus(101)_2=(110)_2=63⊕5=(011)2⊕(101)2=(110)2=6。
对样例,(0⊕5)+(1⊕5)+(2⊕5)+(3⊕5)+(4⊕5)=5+4+7+6+1=23(0\oplus5)+(1\oplus5)+(2\oplus5)+(3\oplus5)+(4\oplus5)=5+4+7+6+1=23(0⊕5)+(1⊕5)+(2⊕5)+(3⊕5)+(4⊕5)=5+4+7+6+1=23,而 23modp=2323\bmod p=2323modp=23。
来源
2022CS杯预选赛