Preparando MOJI
There is a grid with $$$r$$$ rows and $$$c$$$ columns, where the square on the $$$i$$$-th row and $$$j$$$-th column has an integer $$$a_{i, j}$$$ written on it. Initially, all elements are set to $$$0$$$. We are allowed to do the following operation:
You want to form grid $$$b$$$ by doing the above operations a finite number of times. However, some elements of $$$b$$$ are missing and are replaced with '?' instead.
Let $$$k$$$ be the number of '?' characters. Among all the $$$2^k$$$ ways of filling up the grid $$$b$$$ by replacing each '?' with '0' or '1', count the number of grids, that can be formed by doing the above operation a finite number of times, starting from the grid filled with $$$0$$$. As this number can be large, output it modulo $$$998244353$$$.
The first line contains two integers $$$r$$$ and $$$c$$$ ($$$1 \le r, c \le 2000$$$) — the number of rows and columns of the grid respectively.
The $$$i$$$-th of the next $$$r$$$ lines contain $$$c$$$ characters $$$b_{i, 1}, b_{i, 2}, \ldots, b_{i, c}$$$ ($$$b_{i, j} \in \{0, 1, ?\}$$$).
Print a single integer representing the number of ways to fill up grid $$$b$$$ modulo $$$998244353$$$.
3 3 ?10 1?? 010
1
2 3 000 001
0
1 1 ?
2
6 9 1101011?0 001101?00 101000110 001011010 0101?01?? 00?1000?0
8
In the first test case, the only way to fill in the $$$\texttt{?}$$$s is to fill it in as such:
0 | 1 | 0 |
1 | 1 | 1 |
0 | 1 | 0 |
This can be accomplished by doing a single operation by choosing $$$(i,j)=(2,2)$$$.
In the second test case, it can be shown that there is no sequence of operations that can produce that grid.