#arc120b. [arc120_b]Uniformly Distributed

[arc120_b]Uniformly Distributed

题目描述

我们有一个 HHWW 列的网格。记 (i,j)(i, j) 为第 ii 行第 jj 列的方块。
给定 HH 个字符串 S1,S2,S3,,SHS_1, S_2, S_3, \dots, S_H 描述方块的颜色,如下所示:

  • 如果 SiS_i 的第 jj 个字符是 R,那么 (i,j)(i, j) 是红色的;
  • 如果 SiS_i 的第 jj 个字符是 B,那么 (i,j)(i, j) 是蓝色的;
  • 如果 SiS_i 的第 jj 个字符是 .,那么 (i,j)(i, j) 是未涂色的。

kk 为未涂色方块的数量。在这些方块上可以涂成红色或蓝色的 2k2^k 种方式中,有多少种满足以下条件的涂色方案?

  • (1,1)(1, 1) 走到 (H,W)(H, W),每次只能向右或向下移动,经过的红色方块的个数总是相同的,包括 (1,1)(1, 1)(H,W)(H, W)

由于计数可能非常大,输出结果需要对 998244353998244353 取模。

约束条件

  • 2H5002 \le H \le 500
  • 2W5002 \le W \le 500
  • SiS_i 是长度为 WW 的字符串,由字符 RB. 组成。

输入

输入从标准输入中按以下格式给出:

HH WW S1S_1 S2S_2 S3S_3 \vdots SHS_H

输出

将结果按照 998244353998244353 取模后输出。


示例输入 1

2 2
B.
.R

示例输出 1

2

有两种方式可以从 (1,1)(1, 1) 走到 (2,2)(2, 2):向右走或向下走。具体如下所示:

  • (1,1)(1,2)(2,2)(1, 1) \rightarrow (1, 2) \rightarrow (2, 2)
  • (1,1)(2,1)(2,2)(1, 1) \rightarrow (2, 1) \rightarrow (2, 2)

如果我们将 (1,2)(1, 2)(2,1)(2, 1) 涂成不同的颜色,上面两条路径中红色方块的数量将不同,违反了条件。
另一方面,如果我们将 (1,2)(1, 2)(2,1)(2, 1) 涂成相同的颜色,两条路径中的红色方块数量将相同,满足条件。
因此,有两种满足条件的涂色方案。


示例输入 2

3 3
R.R
BBR
...

示例输出 2

0

可能没有满足条件的方案。


示例输入 3

2 2
BB
BB

示例输出 3

1

没有未涂色的方块,当前的网格满足条件,所以答案是 11