#abc295h. [abc295_h]E or m
[abc295_h]E or m
题目描述
我们有一个 行和 列的网格 。初始时,每个方格上都写有 。
让我们执行以下操作。
- 对于每个满足 的整数 ,在第 行,将最左边的一个或多个方格中的数字变为 。
- 对于每个满足 的整数 ,在第 列,将最上方的一个或多个方格中的数字变为 。
定义集合 为所有可以通过这种方式得到的网格。
给定一个 行 列的网格 ,其中每个方格上的数字为 0
、1
或 ?
。
将每个 ?
替换为 0
或 1
,可以得到 个网格,其中 是 中 ?
的数量。有多少个这样的网格在集合 中?
由于计算结果可能非常大,因此对 取模。
约束条件
- 和 是整数。
- 是一个 行 列的网格,其中的数字为
0
、1
或?
。
输入
输入以以下格式从标准输入给出:
输出
打印一个整数表示答案。
示例输入 1
2 3
0?1
?1?
示例输出 1
6
以下六个网格在 中。
011 011 001
010 011 110
001 011 011
111 110 111
示例输入 2
5 3
101
010
101
010
101
示例输出 2
0
中可能没有 ?
,并且答案可能为 。
示例输入 3
18 18
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
示例输出 3
462237431
请确保对 取模。