无形的博弈
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

神树大人造了一个长为n的01序列,并邀请无所事事的神J来和他博弈。
每一轮里,若这个序列的第1项是0,那么神树大人可以选择让它不变或者变成1;若这个序列的第1项是1,那么神J可以选择让它不变或者变成0。接着对这个序列进行旋转操作:即将第1项放到第n项的后面,其他项依次替补。如果这个序列变为全0,那么神J胜利;如果存在一种方法让神J永远不能胜利,那么神树大人胜利。
一个可能的游戏如下:

初始状态 01
第一项是0,神树大人让他变成1。序列变为:11
第一项是1,神J让他变成0。序列变为:10
第一项是1,神J让他变成0。序列变为:00
神J胜利

现在,你作为神J的信徒,打算计算有多少种长为n的01序列使得神J胜利。

输入描述:

第一行输入一个n。

输出描述:

输出答案对998244353取模。
示例1

输入

复制
1

输出

复制
2
示例2

输入

复制
2

输出

复制
4

备注:

对于30%的数据,

对于60%的数据,

对于100%的数据,