#JP13. 吃饭

吃饭

题目描述

yzy 气喘吁吁来到 C4 食堂。

DL24JP 的 C4 食堂有 套餐,自选,盖饭,汤面,特色,自助 等诸多餐品,
yzy 今天决定吃自助餐。

自助餐厅的不同种菜品整齐一列摆放在长桌上,yzy 会选择其中一些盛进自己的餐盘。

yzy 正在减肥,所以,如果他打了某一样菜品,他就不会再打旁边的菜品了。
形式化地,如果 yzy 选择第 ii 种菜,他就不会再选择第 i1i-1 或第 i+1i+1 种菜品

yzy来到自助餐厅,长桌上摆着 nn 种菜品,yzy 只花了 0.114514 秒就算出他今天有多少种打饭方法(包括什么都不打),他觉得这个问题太简单了,所以想考考你。

由于结果可能很大,你只需要输出最终结果除以 998244353 的余数即可。

输入格式

一行一个整数,表示菜品种类数 nn

输出格式

一行一个整数,表示 yzy 打饭方法数量。

样例

3
5
0
1

数据范围和提示

提示

请留意本题时间限制与内存空间限制。
程序运行超时将导致部分测试点 TLE 而损失部分分,
数组开得太大将导致所有测试点 MLE 而损失所有分。
建议数组总长度不超过 10610^6 (如 int a[10000][10000] / int a[100000000] 等定义将导致你获得 0 分的超高分)
当然,只要你足够自信,你可以忽略这些提示。

样例解释

样例 1 解释

打饭方法如下:(√表示打这种菜品,x表示不打这种菜品)
XXX
√XX
X√X
XX√
√X√
共 5 种。

样例 2 解释

今天食堂没饭,所以 yzy 只有一种打饭方法:什么都不打。

数据范围

对于 5%5 \% 的数据,保证 n=1n=1
对于 15%15 \% 的数据,保证 n4n\leq4
对于 25%25 \% 的数据,保证 n6n\leq6
对于 50%50 \% 的数据,保证 n40n\leq40
对于 75%75 \% 的数据,保证 n105n\leq10^5
对于 100%100 \% 的数据,保证 0n1080\leq n\leq10^8