AT_arc227_f [ARC227F] Erase and Raise
Description
長さ $ N $ の整数列 $ A=(0,0,\ldots,0) $ があります。 次の操作を行える限り、繰り返し行います。
- $ 1\le i\lt j\le |A| $ かつ $ A_i=A_j $ を満たす整数の組 $ (i,j) $ を選ぶ。
- $ A_i,A_j $ を列から取り除く。
- 取り除く直前に $ A_i $ と $ A_j $ の間にあったすべての要素に $ 1 $ を加える。
ここで $ |A| $ は、その時点での列 $ A $ の長さを表します。
操作を行えなくなったときの列としてあり得るものの個数を $ 998244353 $ で割った余りを求めてください。 最終的な列が同じならば、操作の過程が異なっても区別しません。 長さ $ 0 $ の列も $ 1 $ つの列として数えます。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
操作を行えないため、最終的な列は $ (0) $ の $ 1 $ 個です。
### Sample Explanation 2
最終的な列としてあり得るものは、 $ (0) $ 、 $ (1) $ 、 $ (2) $ の $ 3 $ 個です。
### Sample Explanation 3
操作の選び方によって、 $ 8 $ 個の異なる列を得られます。
### Sample Explanation 4
答えを $ 998244353 $ で割った余りを求めることに注意してください。
### Constraints
- $ 1 \le N \le 2 \times 10^5 $
- 入力される数値はすべて整数