Friendly Polynomial
题号:NC20707
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小p今年的生日礼物是一套积木!
这里面共有块积木,其中第块积木可以看做是一个高度为,长宽均为的长方体。
他现在想要重新排列这块积木。
为排列后第i块积木的高度,我们定义一种不合法的排列方式为:

现在小p想知道总共有多少种不合法的排列方式,输出结果对998244353取模。

输入描述:

第一行一个数T。表示有T组询问。
接下来T行,每行一个数n。表示共有n块积木。

输出描述:

T行,每行一个整数,表示方案总数对998244353取模后的结果。
示例1

输入

复制
5
3
4
5
233
12345

输出

复制
3
11
49
286411599
788968997

说明

对于3的样例解释
不合法的方案有
(1,2,3) 1,2位置不合法
(1,3,2) 1位置不合法
(2,1,3) 2位置不合法

对于4的样例解释
不合法的方案有
(1,2,3,4)
(1,2,4,3)
(1,3,2,4)
(1,3,4,2)
(1,4,2,3)
(1,4,3,2)
(2,1,3,4)
(2,1,4,3)
(2,3,1,4)
(3,1,2,4)
(3,2,1,4)

备注:

对于100%的数据: