P7523 Cytoid

题目背景

![Welcome to Cytoid!](https://cdn.luogu.com.cn/upload/image_hosting/zzg1blb0.png) 众所周知,尽管很菜,但 colazcy 仍然很喜欢玩 Cytus。

题目描述

一天,colazcy 又在越级打谱。不到一分钟,colazcy 把手机一摔,骂道:“什么垃圾铺面!” 于是他准备在 Cytoid 上面做一个自制铺恶心别人。 colazcy 准备上一波劲爆 $m$ 押,共有 $n$ 排。也就是说,他的铺面是一个 $n\times m$ 的矩阵,其中每一个位置可以是 Drag 也可以是 Click。colazcy 已经确定了其中一些位置应该是什么元素,但剩下的还没有确定。 但是 colazcy 发现,他铺面对应的矩形如果有一个子矩形中所有元素都是 Drag,那么玩家就可以一直按住糊过去。colazcy 定义一张铺面的简单度为这张铺面对应的矩形中全都是 Drag 的子矩形个数。 现在 colazcy 把他还未完成的铺面给了你,希望你告诉他:如果他等概率随机地把剩下没有决定的元素填成 Drag / Click,最终铺面简单度的期望是多少。不难观察到答案总是一个有理数,你只需要输出这个答案对 $998244353$ 取模的结果。如果你不知道如何将一个有理数对质数取模,可以参考 [有理数取模](https://www.luogu.com.cn/problem/P2613)。

输入格式

第一行两个正整数 $n,m$,分别代表矩阵的行数和列数。 接下来 $n$ 行,第 $i$ 行有一个长度为 $m$ 的字符串,其第 $j$ 位为 `o` 代表这个位置被确定为 Drag,为 `x` 代表其被确定为 Click,为 `?` 表示这个位置还没有确定。

输出格式

一行一个整数,代表简单度的期望对 $998244353$ 取模的结果。

说明/提示

### 样例解释 样例一:整个铺面已经确定,而简单度 = 全是 Drag 的子矩阵数目 = $5$。 样例二:只有一个位置没有确定:当这个位置填 Drag 时,简单度为 $9$;当这个位置填 Click 时,简单度为 $5$。则期望简单度为 $\dfrac{9+5}2=7$。 ### 数据范围 对于全部数据,有 $1\le n,m\le 100$。 Subtask 1 (15 pts):保证没有尚未确定的元素(即输入没有 `?`)。 Subtask 2 (15 pts):保证尚未确定的元素个数 $\le 3$。 Subtask 3 (30 pts):保证 $n\le 30$。 Subtask 4 (40 pts):无特殊限制。