【XR-1】俄罗斯方块
题目背景
小粉兔最近沉迷一个名叫“俄罗斯方块”的游戏。
然而本题除了都有格子和颜色之外和俄罗斯方块没什么关系。
题目描述
有一个 $n \times m$ 的方格图,小粉兔打算在其中画线。
他可以画线若干次,也可以不画。每次画线必须从一个没有被画过的方格中心开始。
只能往上下左右四个方向画线,对应方向上的方格记作**目标方格**。
目标方格能被画,当且仅当下面三种情况:
1. 如果目标方格**没有被画过**,则可以经过两个方格公共边的中点,直接画到目标方格中心,此时**可以选择**结束本次画线;
2. 如果目标方格**已经被画过**,且这条画过的线是**贯穿整个方格的线**,则可以再画一条与这条线**垂直**的**贯穿整个方格的线**。对**贯穿整个方格的线**的定义为:这条线在方格中**没有改变方向**,**上下贯穿**或**左右贯穿**;
3. 如果目标方格是本次画线的**起笔方格**,则可以经过两个方格公共边的中点,直接画到目标方格中心,此时**必须**结束本次画线。
当然,不能画到整个方格图外面去。
虽然小粉兔制定了如此严苛的规则,但是他仍然有很多种颜色的笔,每次画线他可以选择 $c$ 种颜色中的任意一种用来画线。
不幸的是,方格图中有一些位置坏掉了,不能被经过,即在任意一次画线中不能画到坏掉的位置上。
小粉兔想知道,在这些限制下,最终能画出多少种本质不同的图呢?
小粉兔不想要求太多,当 $\mathrm{op}=0$ 时,两张图本质相同当且仅当不考虑坏掉的方格,它们看起来相同(每个位置上的线条方向和颜色均相同)。
而当 $\mathrm{op}=1$ 时,两张图本质相同当且仅当不考虑坏掉的方格,它们看起来相同,或旋转 $180 ^ {\circ}$ 后看起来相同。
因为答案可能很多,所以小粉兔只想知道答案对 $998244353$ 取模的结果。
输入输出格式
输入格式
第一行三个正整数 $n,m,c$ 和一个非 $0$ 即 $1$ 的数 $\mathrm{op}$。
接下来 $n$ 行,每行一个长度为 $m$ 的字符串,只包含 `.` 和 `#` 两种字符,描述方格图的情况。如果第 $i$ 行的第 $j$ 个字符为 `#` 则表示方格图中第 $i$ 行第 $j$ 列的方格坏掉了,否则没有坏掉。
输出格式
输出一行一个数,表示答案对 $998244353$ 取模的结果。
输入输出样例
输入样例 #1
1 3 2 0
...
输出样例 #1
7
输入样例 #2
1 3 2 1
...
输出样例 #2
5
输入样例 #3
2 2 1 0
..
..
输出样例 #3
16
输入样例 #4
2 2 1 1
..
..
输出样例 #4
10
输入样例 #5
2 2 1 0
..
#.
输出样例 #5
4
输入样例 #6
4 5 1 0
.....
.#.#.
....#
.#...
输出样例 #6
65856
输入样例 #7
4 5 1 1
.....
.#.#.
....#
.#...
输出样例 #7
65616
说明
【样例 $1$ 说明】
共有如下 $7$ 种本质不同的图:
![](https://cdn.luogu.com.cn/upload/pic/57768.png)
【样例 $6$ 说明】
下面给出两种本质不同的图:
![](https://cdn.luogu.com.cn/upload/pic/57770.png)
【数据规模与约定】
本题采用捆绑测试:
Subtask 1(12 points):$n=1$,$\mathrm{op}=0$,没有坏掉的格子。
Subtask 2(13 points):$c=1$,$\mathrm{op}=0$。
Subtask 3(12 points):$c=1$,$\mathrm{op}=1$。
Subtask 4(14 points):$m\le 5$,$\mathrm{op}=0$。
Subtask 5(25 points):$\mathrm{op}=0$。
Subtask 6(8 points):$n\bmod 2=0$,$\mathrm{op}=1$。
Subtask 7(8 points):$n\bmod 2=1$,$m\bmod 2=0$,$\mathrm{op}=1$。
Subtask 8(8 points):$n\bmod 2=1$,$m\bmod 2=1$,$\mathrm{op}=1$。
对于 $100\%$ 的数据,$1\le n,m\le 9$,$1\le c\le 10^6$,$\mathrm{op}\in\{0,1\}$。