AT_abc292_g [ABC292G] Count Strictly Increasing Sequences

Description

[problemUrl]: https://atcoder.jp/contests/abc292/tasks/abc292_g 数字( `0123456789` )と `?` からなる長さ $ M $ の文字列の列 $ S_1,\ldots,S_N $ が与えられます。 `?` を独立に数字に置き換える方法は $ 10^q(q $ は $ S_1,\ldots,S_N $ に含まれる `?` の個数の合計$ ) $ 通りありますが、そのうち置き換え後の文字列をそれぞれ整数値とみなしたときに $ S_1\lt\ S_2\ \lt\ \ldots\ \lt\ S_N $ が成り立つようなものが何通りあるかを $ 998244353 $ で割った余りを求めてください。 なお、`?` を置き換えた後の $ S_i $ は先頭に $ 1 $ 個以上の `0` が連続していても構いません。例えば、`0000000292` を整数値とみなすと $ 292 $ となります。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ S_1 $ $ \vdots $ $ S_N $

Output Format

答えを出力せよ。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 40 $ - $ 1\ \leq\ M\ \leq\ 40 $ - $ N,M $ は整数 - $ S_i $ は数字と `?` からなる長さ $ M $ の文字列 ### Sample Explanation 1 条件を満たす置き換え方は以下の $ 4 $ 通りです。 - $ S_1 $ の $ 1 $ 文字目の `?` を `0` に、$ S_2 $ の $ 1,2 $ 文字目の `?` をそれぞれ `0`, `1` に置き換える。 - $ S_1 $ の $ 1 $ 文字目の `?` を `0` に、$ S_2 $ の $ 1,2 $ 文字目の `?` をそれぞれ `0`, `2` に置き換える。 - $ S_1 $ の $ 1 $ 文字目の `?` を `0` に、$ S_2 $ の $ 1,2 $ 文字目の `?` をそれぞれ `0`, `3` に置き換える。 - $ S_1 $ の $ 1 $ 文字目の `?` を `0` に、$ S_2 $ の $ 1,2 $ 文字目の `?` をそれぞれ `0`, `4` に置き換える。 ### Sample Explanation 3 答えを $ 998244353 $ で割った余りを求めてください。