#include using namespace std; const int mod = 998244353; inline int qp(int a, int b) { int res = 1; while (b) { if (b & 1) res = 1ll * res * a % mod; a = 1ll * a * a % mod; b >>= 1; } return res; } const int N = 10000005; int inv[N], f[N]; int main() { inv[1] = 1; for (int i = 2; i < N; i++) inv[i] = 1ll * (mod - mod / i) * inv[mod % i] % mod; int T; scanf("%d", &T); while (T--) { int n, c; scanf("%d%d", &n, &c); int cf1 = 2ll * (c + 1) % mod, cf2 = 4ll * c * c % mod; cf2 = (mod - cf2) % mod; f[1] = (2 + 2ll * c) % mod; f[2] = (4ll * c * c + 12ll * c + 6) % mod; for (int i = 3; i <= n; i++) { f[i] = (1ll * cf1 * (2 * i - 1) % mod * f[i - 1] + 1ll * cf2 * (i - 1) % mod * f[i - 2]) % mod * inv[i] % mod; } int ans = 0; for (int i = 1; i <= n; i++) ans ^= f[i]; printf("%d\n", ans); } return 0; }