E. 冒泡排序
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Cubber 有一个 $$$n \times n$$$ 的多层自动化立体仓库,初始时散布着 $$$n^2$$$ 个包裹。每个包裹都被随机赋予了一个重量 $$$W$$$($$$W$$$ 独立且等概率地从 $$$1$$$ 到 $$$m$$$ 的整数中生成)。

为了优化后续发货,系统需要对仓库进行一次二维的自动化整理,整理严格分为以下两个阶段:

阶段一:水平传输带整理(行排序) 在仓库的每一层(行)都有一条水平传输带。系统使用冒泡排序将每层的包裹按重量从轻到重(非降序)排列。每次在传输带上交换两个相邻包裹的位置时,只需消耗 $$$1$$$ 个单位代价(与包裹重量无关)。

阶段二:垂直升降机整理(列排序) 水平整理完成后,仓库的每一列构成了一个垂直的升降机通道。系统再次使用冒泡排序将每一列的包裹按重量从轻到重排列(即要求轻的包裹在上,重的包裹在下)。 在垂直通道中,由于需要考虑重力这一因素,交换包裹的能耗与包裹本身的重量差直接相关:每次将上方重量为 $$$A$$$、下方重量为 $$$B$$$(且 $$$A \gt B$$$)的两个相邻包裹进行垂直对调时,机械系统需要消耗 $$$(A - B)$$$ 个单位的代价。

现请你计算整个整理过程所消耗的期望总代价

Input

一行包含两个正整数 $$$n(1 \le n \le 10^3),m(1 \le m \le 10^{18})$$$。

Output

一行一个正整数,表示答案对 $$$998244353$$$ 取模后的结果。

Examples
Input
114 514
Output
617031371
Input
19 19810
Output
954576411