AT_yahoo_procon2019_qual_f Pass

Description

[problemUrl]: https://atcoder.jp/contests/yahoo-procon2019-qual/tasks/yahoo_procon2019_qual_f $ N $ 人のすぬけ君が $ 1 $ 列に並んでいます。 長さ $ N $ の文字列 $ S $ が与えられ、前から $ i $ 人目のすぬけ君は $ S $ の $ i $ 文字目が `0` のとき赤いボールを $ 2 $ つ、`1` のとき赤いボールと青いボールを $ 1 $ つずつ、`2` のとき青いボールを $ 2 $ つ持っています。 高橋君は最初、空の列を持っています。以下の操作を $ 2N $ 回繰り返してできる列としてありうるものの個数を $ 998244353 $ で割った あまりを求めてください。 - ボールを $ 1 $ つ以上持っているすぬけ君は全員同時に、自分が持っているボールの中から $ 1 $ つを選び、前のすぬけ君に渡す。ただし、先頭のすぬけ君は、高橋君に渡す。 - 高橋君は、先頭のすぬけ君から受け取ったボールを、列の末尾に並べる。

Input Format

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

Output Format

操作を $ 2N $ 回繰り返してできる列としてありうるものの個数を $ 998244353 $ で割ったあまりを出力せよ。

Explanation/Hint

### 制約 - $ 1\ \leq\ |S|\ \leq\ 2000 $ - $ S $ は `0`,`1`,`2` からなる 整数 $ N $ は入力では与えられず、文字列 $ S $ の長さとして間接的に与えられることに注意せよ。 ### Sample Explanation 1 前から $ i $ 個目に並んだボールの色が赤のとき `r` を、青のとき `b` を $ i $ 文字目の文字とした長さ $ 2N $ の文字列で列を表すことにすれば、 `rrbb`,`rbrb`,`rbbr` が条件を満たします。