#agc060a. [agc060_a]No Majority

[agc060_a]No Majority

問題文

英小文字からなる文字列 xx が以下の条件を満たすとき,xxよい文字列と呼ぶことにします.

  • xx の長さ 22 以上の (連続する) 部分文字列は,すべて以下の条件を満たす.
    • その部分文字列内で過半数を占める文字が存在しない.

例えば,acbca はよい文字列ではありません. これは,部分文字列 cbc のなかで c が過半数を占めているからです.

英小文字と ? からなる長さ NN の文字列 SS が与えられます. それぞれの ? を好きな英小文字に置き換ることで,SS をよい文字列にしたいです. SS をよい文字列にする方法が何通りあるかを 998244353998244353 で割ったあまりを求めてください.

制約

  • 2leqNleq50002 \\leq N \\leq 5000
  • SS は英小文字と ? からなる長さ NN の文字列

入力

入力は以下の形式で標準入力から与えられる.

NN SS

出力

答えを出力せよ.


入力例 1

3
a?b

出力例 1

24

aab, abb 以外の方法が条件を満たします.


入力例 2

3
a?a

出力例 2

0

入力例 3

20
ugsyakganihodnwmktgi

出力例 3

1

入力例 4

20
??a???h?m?y?ts???tl?

出力例 4

444225229