三点リーダって2つセットで使わないといけないらしいですね

問題文

.のみからなる長さ NN の文字列 SS があります。

文字列に対し、次のような操作を考えます。

・その文字列の部分文字列であり...であるようなものを 11 つ選び、(...とは異なること、 11 文字であることに注意してください)に置き換えます。そのような部分文字列がない場合、操作は行えません。

SS にこの操作を任意の非負整数回行って得られる全ての異なる文字列 TT に対し、次の問題を解き、その答えの総和を 998244353998244353 で割った余りを出力してください。

TT の部分列として考えられるものは 2T2^{|T|} 通りありますが、そのうち「その文字列に含まれる任意のに対し、その文字に隣り合う文字のうちちょうど 11 つがである」を満たすものはいくつありますか?

制約

  • NN は整数
  • 1N10181\leq N\leq 10^{18}

入力

N

出力

問題文の通りに出力してください。

サンプル

入力1
4
出力1
20

文字列 TT としてありうるものは、....,.#,#.33 通りです(ただし、#と表記しています)。このうち、条件が満たされる部分列の個数はそれぞれ 16,2,216,2,2 通りなので、答えは 2020 になります。

入力2
6
出力2
98

文字列 TT としてありうるものは、......,#...,.#..,..#.,...#,##66 通りです。ここで、##という文字列は##という部分列も条件を満たします。

入力3
12345678901234567
出力3
930548119

998244353998244353 で割った余りを出力してください。

Submit


Go (1.21)