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 $ - 入力される数値はすべて整数