#arc157c. [arc157_c]YY Square

[arc157_c]YY Square

问题描述

有一个 HHWW 列的网格,每个方格上都写着字符 XY。设 (i,j)(i, j) 表示从上方开始第 ii 行第 jj 列的方格,网格上的字符由 HH 个字符串 S1,S2,,SHS_1, S_2, \dots, S_H 给出:SiS_i 的第 jj 个字符表示方格 (i,j)(i, j) 上的字符。

对于从方格 (1,1)(1, 1) 移动到方格 (H,W)(H, W) 的路径 PP,定义如下的 分数

  • mathrmstr(P)\\mathrm{str}(P) 是将 PP 访问过的方格的字符按访问顺序拼接而成的长度为 (H+W1)(H + W - 1) 的字符串。
  • PP 的分数是 mathrmstr(P)\\mathrm{str}(P) 中连续出现的 Y 的对数的 平方

共有 displaystylebinomH+W2H1\\displaystyle\\binom{H + W - 2}{H - 1} 条这样的路径。求所有这些路径的分数之和,模 998244353998244353

什么是 binomNK\\binom{N}{K}displaystylebinomNK\\displaystyle\\binom{N}{K} 表示从 NN 个不同元素中选择 KK 个的组合数。

约束条件

  • 1leqHleq20001 \\leq H \\leq 2000
  • 1leqWleq20001 \\leq W \\leq 2000
  • Si(1leqileqH)S_i \\ (1 \\leq i \\leq H) 是长度为 WW 的由 XY 构成的字符串。

输入

输入使用以下格式从标准输入给出:

HH WW S1S_1 S2S_2 vdots\\vdots SHS_H

输出

输出所有可能路径的分数之和,模 998244353998244353

样例一

2 2
YY
XY

样例一输出

4

有两条可能的路径 PP(1,1)to(1,2)to(2,2)(1, 1) \\to (1, 2) \\to (2, 2)(1,1)to(2,1)to(2,2)(1, 1) \\to (2, 1) \\to (2, 2)

  • 对于 (1,1)to(1,2)to(2,2)(1, 1) \\to (1, 2) \\to (2, 2),我们有 mathrmstr(P)=\\mathrm{str}(P) = {}YYY,在位置 1,21, 22,32, 3 上有两对连续的 Y,所以分数是 22=42^2 = 4
  • 对于 (1,1)to(2,1)to(2,2)(1, 1) \\to (2, 1) \\to (2, 2),我们有 mathrmstr(P)=\\mathrm{str}(P) = {}YXY,没有连续的 Y,所以分数是 02=00^2 = 0

因此,所求的和是 4+0=44 + 0 = 4

样例二

2 2
XY
YY

样例二输出

2

对于两条可能的路径 PP 中的任何一条,我们有 mathrmstr(P)=\\mathrm{str}(P) = {}XYY,分数为 12=11^2 = 1

样例三

10 20
YYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYY

样例三输出

423787835

将分数之和模 998244353998244353 输出。