#P6997. 愿望幽灵

愿望幽灵

Problem Description

给定 $c$,设 $q_k$ 表示有一个 $2\times k$ 的矩阵,初始时所有位置均为空,要从中选出 $k$ 个位置涂上 $0,1,\dots,c$ 的数字,使得每列至多存在一个数字非 $0$ 的方案数。

每个位置只能涂上一种数字。

空的位置与染上任何一个数字的位置都是不同的。

每种数字可以出现在多个位置上。

给定 $n$,求 $q_1,q_2,\dots,q_n$ 模 $998244353$。

为了减小输出量,只需要输出它们的异或和即可。

Input

本题有多组测试数据。

第一行,一个正整数 $T$ $(1 \le T \le 5)$ 表示数据组数。

对于每组数据,第一行两个整数 $n,c$ $(1 \le n \le 10^7,0 \le c < 998244353)$。

Output

对于每组数据,一行一个非负整数,表示 $q_1,q_2,\dots,q_n$ 模 $998244353$ 后的异或和。

3 5 0 3 1 3 2
170 154 420

Hint


对于第一组数据:
异或前的结果为 [2, 6, 20, 70, 252]。
对 q[1],考虑将第 1 行第 1 列的格子或第 2 行第 1 列的格子涂上 0 即可。
对 q[2],考虑任意选出两个格子涂上 0 即可。

对于第二组数据:
异或前的结果为 [4, 22, 136]。
对 q[1],考虑将第 1 行第 1 列的格子或第 2 行第 1 列的格子涂上 0 或 1 即可。

对于第三组数据:
异或前的结果为 [6, 46, 396]。