atcoder#AGC046B. [AGC046B] Extension

[AGC046B] Extension

配点 : 600600

問題文

AA マス横 BB マスのマス目があり、そのすべてのマスは白く塗られています。このマス目に、以下の操作を繰り返し行います。

  • 現在のマス目が縦 aa マス横 bb マスであるとする。縦または横を選ぶ。- 縦を選んだ場合はマス目の上に 11 行を追加し、縦 a+1a+1 マス横 bb マスのマス目にする。
    • 横を選んだ場合はマス目の右に 11 列を追加し、縦 aa マス横 b+1b+1 マスのマス目にする。
  • 縦を選んだ場合はマス目の上に 11 行を追加し、縦 a+1a+1 マス横 bb マスのマス目にする。
  • 横を選んだ場合はマス目の右に 11 列を追加し、縦 aa マス横 b+1b+1 マスのマス目にする。
  • これにより追加されたマスのうちちょうど 11 マスを黒く塗り、追加された残りのマスを白く塗る。

最終的にマス目が縦 CC マス横 DD マスになったとするとき、最終的なマス目の異なる塗られ方としてありうるものの個数を 998244353998244353 で割った余りを求めてください。

制約

  • 1AC30001 \leq A \leq C \leq 3000
  • 1BD30001 \leq B \leq D \leq 3000
  • A,B,C,DA,B,C,D は整数である

入力

入力は以下の形式で標準入力から与えられる。

AA BB CC DD

出力

最終的なマス目の異なる塗られ方としてありうるものの個数を 998244353998244353 で割った余りを出力せよ。

1 1 2 2
3

左下以外の 33 マスの中の任意の 22 マスが黒く塗られているような塗られ方が条件を満たします。

2 1 3 4
65
31 41 59 265
387222020