CF1815D XOR Counting

题目描述

记 $\bigoplus$ 表示按位异或运算。 给定整数 $n,m$。记一个序列 $a$ 是好的,当且仅当它是一个长度为 $m$ 的非负整数序列,且其元素之和恰好为 $n$。 求在好的序列 $a$ 中,$\bigoplus_{i=1}^ma_i$ 的所有可能取值之和对 $998244353$ 取模后的值。 对于一个 $\bm{\bigoplus_{i=1}^ma_i}$ 的可能取值,**无论有多少个**可以取得这个值的好的序列 $\bm{a}$,**这个值都应只被计入所求之和一次。** 每个测试点包含多组数据。

输入格式

第一行输入一个整数 $t(1\leq t\leq10^4)$ 表示数据组数。 接下来每组数据含有一行两个整数 $n,m$ $(0\leq n\leq10^{18},1\leq m\leq10^5)$。

输出格式

对于每组数据,输出一行一个整数表示 $\bigoplus_{i=1}^ma_i$ 的所有可能取值之和对 $998244353$ 取模后的值。

说明/提示

### 样例解释 对于样例一: - 所有好的序列 $a$ 为 $[69]$,其所有元素按位异或和为 $69$。 因此 $\bigoplus_{i=1}^ma_i$ 的所有可能取值为 $69$,故答案为 $69$。 对于样例二: - 所有好的序列 $a$ 为 $[5,0],[4,1],[3,2],[2,3],[4,1],[0,5]$,其所有元素按位异或和分别为 $5,5,1,1,5,5$。 因此 $\bigoplus_{i=1}^ma_i$ 的所有可能取值为 $1,5$,故答案为 $1+5$,即 $6$。 对于样例三: - 所有好的序列 $a$ 为 $[0,0,0,0,0,0,0,0,0,0]$,其所有元素按位异或和为 $0$。 因此 $\bigoplus_{i=1}^ma_i$ 的所有可能取值为 $0$,故答案为 $0$。