题目描述
给你 2 个整数 N 和 M,请你求出 $\sum\limits\_{k=0}^N \operatorname{popcount}(k \operatorname{and}M)$ 对 998244353 取模后的值。
其中,and 表示按位与运算,popcount(x) 表示 x 的二进制表示中 1 的个数(比如 13=1101(2),所以 popcount(13)=3)。
输入格式
输入一行两个整数 N 和 M。
输出格式
输出答案,结果对 998244353 取模。
样例 1
输入
4 3
输出
4
样例 2
输入
0 0
输出
0
样例 3
输入
1152921504606846975 1152921504606846975
输出
499791890
说明/提示
数据范围
0≤N,M≤260−1。
样例解释 1
- popcount(0and3)=0
- popcount(1and3)=1
- popcount(2and3)=1
- popcount(3and3)=2
- popcount(4and3)=0
这些值的总和为 4。
样例解释 2
可能出现 N=0 或 M=0 的情况。
样例解释 3
请注意答案对 998244353 取模。