#abc295h. [abc295_h]E or m

[abc295_h]E or m

問題文

NNMM 列のグリッド AA があり、はじめ全てのマスに 00 が書き込まれています。
ここに以下の操作を行います。

  • 1leileN1 \\le i \\le N を満たす各整数 ii に対して、 AAii 行目の左から 00 個以上のマスの数字を 11 にする。
  • 1lejleM1 \\le j \\le M を満たす各整数 jj に対して、 AAjj 列目の上から 00 個以上のマスの数字を 11 にする。

この手続きによって作ることのできる AA の集合を SS とします。

0, 1, ? からなる NNMM 列のグリッド XX が与えられます。
?01 に置き換えて得られるグリッドは XX に含まれる ? の総数を qq とすると 2q2^q 個ありますが、このうち SS の要素であるものはいくつありますか?
答えは非常に大きくなる場合があるので、 998244353998244353 で割った余りを求めてください。

制約

  • N,MN,M は整数
  • 1leN,Mle181 \\le N,M \\le 18
  • XX0, 1, ? からなる NNMM 列のグリッド

入力

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

NN MM X1,1X1,2dotsX1,MX_{1,1} X_{1,2} \\dots X_{1,M} X2,1X2,2dotsX2,MX_{2,1} X_{2,2} \\dots X_{2,M} vdots\\vdots XN,1XN,2dotsXN,MX_{N,1} X_{N,2} \\dots X_{N,M}

出力

答えを整数として出力せよ。


入力例 1

2 3
0?1
?1?

出力例 1

6

条件を満たすグリッドは以下の 66 つです。

011  011  001
010  011  110

001  011  011
111  110  111

入力例 2

5 3
101
010
101
010
101

出力例 2

0

XX? が存在しない場合も、答えが 00 である場合もあります。


入力例 3

18 18
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????

出力例 3

462237431

答えを 998244353998244353 で割った余りを求めることに注意してください。