直接自然溢出啥事没有 加强版

题目背景

[原题链接](https://www.luogu.com.cn/problem/P6103) 本题与原题的区别,只有模数和数据范围不同。 ![](https://cdn.luogu.com.cn/upload/image_hosting/hu0gfpdv.png)

题目描述

给定一个正整数 $n$,问有多少个长度为 $n$ 的字符串,满足这个字符串是一个「程序片段」。 具体定义如下: 单个分号 `;` 是一个「语句」。 空串 是一个「程序片段」。 如果字符串 `A` 是「程序片段」,字符串 `B` 是「语句」,则 `AB` 是「程序片段」。 如果字符串 `A` 是「程序片段」,则 `{A}` 是「语句块」。 如果字符串 `A` 是「语句块」,则 `A` 是「语句」,`[]A` 和 `[]()A` 都是「函数」。 如果字符串 `A` 是「函数」,则 `(A)` 是「函数」,`A` 和 `A()` 都是「值」。 如果字符串 `A` 是「值」,则 `(A)` 是「值」,`A;` 是「语句」。 **注意:`A` 是 `B` 并不代表 `B` 是 `A`。**

输入输出格式

输入格式


输入一行一个正整数 $n$。

输出格式


输出一行一个整数表示答案,作为良心出题人,你只需要对 $998244353$ 取模。

输入输出样例

输入样例 #1

4

输出样例 #1

9

输入样例 #2

7

输出样例 #2

140

输入样例 #3

8923

输出样例 #3

424180943

输入样例 #4

114514

输出样例 #4

552971057

说明

【样例一解释】 合法的「程序片段」有:`;;;;`,`;;{}`,`;{;}`,`;{};`,`{;;}`,`{;};`,`{{}}`,`{};;`,`{}{}`。 【数据范围】 对于 $30\%$ 的数据,$1\le n \le 10^5$; 对于 $100\%$ 的数据,$1\le n \le 10^7$。