#agc046b. [agc046_b]Extension

[agc046_b]Extension

题目描述

我们有一个网格,有 AA 个水平行和 BB 个垂直列,所有方格都被涂成白色。在这个网格上,我们将重复执行以下操作:

  • 假设当前网格有 aa 个水平行和 bb 个垂直列。选择“垂直”或“水平”。
    • 如果选择“垂直”,在网格的顶部插入一行,得到一个 (a+1)timesb(a+1) \\times b 的网格。
    • 如果选择“水平”,在网格的右边插入一列,得到一个 atimes(b+1)a \\times (b+1) 的网格。
  • 然后,将添加的一个方格涂成黑色,其他方格涂成白色。

假设网格最终有 CC 个水平行和 DD 个垂直列。计算方格最终可能的涂色方式数量,对 998244353998244353 取模。

约束条件

  • 1leqAleqCleq30001 \\leq A \\leq C \\leq 3000
  • 1leqBleqDleq30001 \\leq B \\leq D \\leq 3000
  • AABBCCDD 为整数。

输入

输入以标准输入格式给出,格式如下所示:

AA BB CC DD

输出

输出方格最终可能的涂色方式数量,对 998244353998244353 取模。

示例输入 1

1 1 2 2

示例输出 1

3

除了左下角方格之外的三个方格中的任意两个都可以涂成黑色。

示例输入 2

2 1 3 4

示例输出 2

65

示例输入 3

31 41 59 265

示例输出 3

387222020