atcoder#KEYENCE2020F. Monochromization

Monochromization

配点 : 11001100

問題文

H×WH \times W のマス目があり、各マスは初期状態で白または黒に塗られています。 初期状態における各マスの塗られ方を表す文字列 A1,A2,...,AHA_1, A_2, ..., A_H が与えられます。 これらの文字列は、各 (i,j)(i, j) (1iH1 \leq i \leq H, 1jW1 \leq j \leq W) について、 文字列 AiA_ijj 文字目が . ならば iijj 列のマスは白に、 # ならば iijj 列のマスは黒に塗られていることを表します。

このマス目の各マスの白または黒による塗られ方 (全部で 2HW2^{HW} 個あります) であって、 初期状態から以下の操作を好きな順番で好きな回数 (00 回以上) 繰り返して得られるものの個数を 998998 244244 353353 で割ったあまりを求めてください。

  • ある行を一つ選び、その行に含まれるすべてのマスを白く塗る。
  • ある行を一つ選び、その行に含まれるすべてのマスを黒く塗る。
  • ある列を一つ選び、その列に含まれるすべてのマスを白く塗る。
  • ある列を一つ選び、その列に含まれるすべてのマスを黒く塗る。

制約

  • 1H,W101 \leq H, W \leq 10
  • Ai=W|A_i| = W (1iH1 \leq i \leq H)
  • すべての AiA_i は文字 . と文字 # だけからなる。
  • HH および WW は整数である。

入力

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

HH WW

A1A_1

A2A_2

\vdots

AHA_H

出力

答えを出力せよ。

2 2
#.
.#
15

たとえば、22 行目を黒く塗って得られるマス目は以下のとおりです。

#.
##
3 3
...
...
...
230
2 4
#...
...#
150
6 7
.......
.......
.#.....
..#....
.#.#...
.......
203949910