#agc021f. [agc021_f]Trinity

[agc021_f]Trinity

题目描述

我们有一个 N×MN \times M 的网格。第 ii 行第 jj 列的方格用 (i,j)(i, j) 表示。特别地,左上角的方格用 (1,1)(1, 1) 表示,右下角的方格用 (N,M)(N, M) 表示。Takahashi 将一些方格涂成黑色(可能为零),将其他方格涂成白色。

我们定义一个长度为 NN 的整数序列 AA,和两个长度为 MM 的整数序列 BBCC,具体如下:

  • 对于 1iN1 \leq i \leq NAiA_i 是最小的 jj,使得方格 (i,j)(i, j) 被涂成黑色,如果不存在则取 M+1M+1
  • 对于 1iM1 \leq i \leq MBiB_i 是最小的 kk,使得方格 (k,i)(k, i) 被涂成黑色,如果不存在则取 N+1N+1
  • 对于 1iM1 \leq i \leq MCiC_i 是最大的 kk,使得方格 (k,i)(k, i) 被涂成黑色,如果不存在则取 00

有多少个三元组 (A,B,C)(A, B, C) 是可能的?计算结果模 998244353998244353

注意事项

在该问题中,你的代码长度不能超过 2000020000 字节。请注意,长度超过限制的提交将会被作废。

约束条件

  • 1N80001 \leq N \leq 8000
  • 1M2001 \leq M \leq 200
  • NNMM 是整数。

分数说明

  • 对于满足 N300N \leq 300 的测试数据,你可以获得 15001500 分。

输入

从标准输入读入输入数据,格式如下:

NN MM

输出

输出三元组 (A,B,C)(A, B, C) 的数量,结果要模 998244353998244353

示例输入 1

2 3

示例输出 1

64

由于 N=2N=2,给定 BiB_iCiC_i,我们可以唯一确定每列黑色方格的排列方式。对于每个 ii,存在四种可能的 (Bi,Ci)(B_i, C_i)(1,1)(1, 1)(1,2)(1, 2)(2,2)(2, 2)(3,0)(3, 0)。因此答案为 4M=644^M=64

示例输入 2

4 3

示例输出 2

2588

示例输入 3

17 13

示例输出 3

229876268

示例输入 4

5000 100

示例输出 4

57613837