U379641 少女,台阶与一切的开始

题目背景

Ilija ($[Iliya]$)正在乡间小路上漫步。 少女轻盈的身体在台阶上跃动,与精致的台阶相映衬。优美的舞姿引人注目,就如同不属于这个世界一样,吸引着不远处另外一个少女的视线。 “为什么......”另一个少女喃喃自语道。 这是她们故事的开始。

题目描述

你认为 Nakira 是在心算 Ilija 舞步的「优雅值」,于是决定帮帮她。 Ilija 一共跳过了 $n$ 块台阶,第 $i$ 步带来的优雅值为 台阶本身的优雅值 $i^i$ 和 Ilija 舞姿的优雅值 $k$ 的和。但是 $n$ 步舞步之间的优雅值可不是简单地累加起来。舞步之间复杂的配合可以用编程世界的「异或」来表示,也就是说 $n$ 步舞步总的优雅值为每一步的优雅值的异或和。 即给定两个数字 $n,k$,求出 $\bigoplus \limits _{i=1} ^n (i^i + k)$,其中 $\bigoplus$ 表示异或和。也即求出 $(1^1+k) \oplus (2^2 + k) \oplus \ldots \oplus (n^n + k)$。 **每一步的**答案($i^i + k$)对 $998244353$ 取模。

输入格式

一行两个整数,分别表示上文中的 $n,k$。

输出格式

一行一个数字,表示(每一步的答案)对 $998244353$ 取模之后的答案。

说明/提示

数据范围如下: | 数据点编号 | $n \le$ | | :----------: | :----------: | | $1 \sim 2$ | $2 \times 10^4$ | | $3 \sim 5$ | $1 \times 10^6$ | | $6 \sim 20$ | $2 \times 10^7$ | 对于所有数据,满足 $k \le 10^9$ 请相信自己的常数和洛谷的评测姬。也许有办法能把暴力卡过去吧,咱不知道。 忘记给一档 $k = 0$ 的部分分了,可以想下怎么拿。(不过这种个人题目真的会有人想部分分吗?) 附件是 std,数据生成器,数据。