#P1046. 半夏

半夏

题目背景

半夏不是真正的夏天哦。但是,但是,我觉得现在的人生,就很幸福了。

看清楚自己想要什么吧。

题目描述

对于一个 01 串 ss,将它切分成若干个子串,并且每个子串都是一个极长连续段。例如,s=0011100011s = 0011100011,那么它就会被切分成 0000111111, 000000, 1111 四个子串。随后,将 00 的连续段和 11 的连续段分别按照长度从小到大排序,再将它们按照原来的 01 顺序拼回去,得到一个新的 01 串 tt。例如,对于上面的例子,t=0011000111t = 0011000111

给定一个正整数 nn,求所有长度为 nn 的 01 串 ss 中,有多少个在根据以上规则得到 tt 后满足 t<st < s。这里的小于号指字典序小于。

由于数量可能很多,你只需要输出答案对 998244353998244353 取模的结果。

输入格式

第一行一个正整数 nn

输出格式

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

样例

样例输入 1

4

样例输出 1

1

样例输入 2

26

样例输出 2

33525046

数据范围与提示

本题共 1010 个测试点,每个测试点 1010 分。

测试点编号 特殊性质
11 n=1n = 1
22 n=20n = 20
33 n=40n = 40
44 n=60n = 60
55 n=100n = 100
676 \sim 7 n500n \le 500
8108 \sim 10 n5000n \le 5000

对于所有数据,1n50001 \le n \le 5000