P0004

排列

排列

给定一个正整数 nn。

考虑集合 {1,2,…,n}\{1,2,\ldots,n\} 的一个排列

p=(p1,p2,…,pn)p=(p_1,p_2,\ldots,p_n)

定义

val⁡(p)=min⁡{ i∣1≤i≤n, i>pi }\operatorname{val}(p)=\min\{\,i \mid 1 \le i \le n,\ i>p_i\,\}

如果不存在满足条件的 ii,则规定

val⁡(p)=n+1\operatorname{val}(p)=n+1

现在在所有 n!n! 个排列中等概率随机选取一个排列 pp。请你求出 val⁡(p)\operatorname{val}(p) 的期望值。

答案对模数 998244353998244353 取模后输出。形式化地,若期望值写成最简分数 xy\dfrac{x}{y},则你需要输出

x⋅y−1 mod 998244353x \cdot y^{-1} \bmod 998244353

其中 y−1y^{-1} 表示 yy 在模 998244353998244353 意义下的乘法逆元。

输入格式

输入一行一个整数 nn。

输出格式

输出一行一个整数,表示答案对 998244353998244353 取模后的结果。

样例 1

输入

2

输出

499122179

说明

  • 对于排列 [1,2][1,2],不存在满足 i>pii>p_i 的位置,因此 val⁡(p)=3\operatorname{val}(p)=3。
  • 对于排列 [2,1][2,1],最小满足 i>pii>p_i 的位置为 i=2i=2,因此 val⁡(p)=2\operatorname{val}(p)=2。

所以期望值为 3+22=52\dfrac{3+2}{2}=\dfrac{5}{2},对应的模意义下结果为 499122179499122179。

提示

本题共 1010 组数据。

对于前 30%30\% 的数据,1≤n≤51 \le n \le 5。

对于前 50%50\% 的数据,1≤n≤201 \le n \le 20。

对于前 80%80\% 的数据,1≤n≤1051 \le n \le 10^5。

对于 100%100\% 的数据,1≤n≤1061 \le n \le 10^6。