上海施工小学
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述


我们可以把校园看作一张有n个点的无向无权图,其中每个点都是不等价的(宿舍和教学楼当然不能视为同一个点啦)。我们将这些点从1n标号,在初始时任意两个点对(i,j)之间都有一条无向边,当然,因为是无向边,所以(i,j)(j,i)之间的边是同一条。换句话说,在初始状态下校园是一个有标号的无向无权完全图。
Komorebi近期发现学校总是在施工,直接影响他的就是施工会带来封路。这对喜欢到处乱逛的Komorebi来说相当不方便,因为封路可以视为在这个图上删去了一条边,他想去一个地方就不得不绕路。

现在学校将在图上删去任意条边,但必须保证删完这些边后整个图是的,即任意一个点对(i,j),都可以从点i经过一些点(或直接)到达点j
一种方案可以认为是一个删去的边的集合。而我们定义两种方案AB是不同的当且仅当存在一条边E
Komorebi想知道学校一共有多少种不同的删除方案呢?请你帮帮他吧!
答案可能会很大,因此你只需要输出答案对998244353取模后的结果即可。

输入描述:

仅一行一个整数n,表示图上有n个点。

输出描述:

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

输入

复制
1

输出

复制
1

说明

可行的方案有:{}。
示例2

输入

复制
2

输出

复制
1

说明

可行的方案有:{}。
示例3

输入

复制
3

输出

复制
4

说明

可行的方案有:{},{(1,2)},{(2,3)},{(1,3)}。

备注:


背景虚构,如有雷同,纯属巧合。