AT_abc468_g [ABC468G] Restricted Permutation

Description

整数 $ N $ と `o` と `x` からなる長さ $ N $ の文字列 $ S $ が与えられます。 以下の条件を満たす $ (1,2,\ldots,N) $ の順列 $ P=(P_1,P_2,\ldots,P_N) $ の個数を $ 998244353 $ で割ったあまりを求めてください。 - $ k=1,2,\ldots,N $ に対し、以下の $ 2 $ つは同値となる。 - $ S_k= $ `o` - $ P $ が $ (1,2,\ldots,k) $ の順列を連続部分列として含む

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ S $

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 $ P=(1,3,2),(2,3,1) $ が条件を満たします。 ### Sample Explanation 2 条件を満たす $ P $ は存在しません。 ### Constraints - $ 1\le N\le 2000 $ - $ S_i $ は `o` と `x` からなる長さ $ N $ の文字列