#abc232e. [abc232_e]Rook Path

[abc232_e]Rook Path

問題文

HH 行、横 WW 行の HtimesWH \\times W マスからなるグリッドがあります。上から ii 行目、左から jj 列目のマスを (i,j)(i, j) と表します。

はじめ、マス (x1,y1)(x_1, y_1) にルークが置かれており、高橋君は以下の操作を KK 回行います。

  • 現在ルークが置かれているマスと行または列が同じマスにルークを移動させる。ただし、現在ルークが置かれているマスとは異なるマスに移動させる必要がある。

KK 回の操作の後、ルークがマス (x2,y2)(x_2, y_2) に置かれているようにする方法は何通りありますか?答えは非常に大きくなることがあるので、998244353998244353 で割った余りを求めてください。

制約

  • 2leqH,Wleq1092 \\leq H, W \\leq 10^9
  • 1leqKleq1061 \\leq K \\leq 10^6
  • 1leqx1,x2leqH1 \\leq x_1, x_2 \\leq H
  • 1leqy1,y2leqW1 \\leq y_1, y_2 \\leq W

入力

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

HH WW KK x1x_1 y1y_1 x2x_2 y2y_2

出力

KK 回の操作の後、ルークがマス (x2,y2)(x_2, y_2) に置かれているようにする方法の総数を 998244353998244353 で割った余りを出力せよ。


入力例 1

2 2 2
1 2 2 1

出力例 1

2

以下の 22 通りです。

  • 11 回目の操作でルークをマス (1,2)(1, 2) からマス (1,1)(1, 1) へ動かし、22 回目の操作でルークをマス (1,1)(1, 1) からマス (2,1)(2, 1) に動かす。
  • 11 回目の操作でルークをマス (1,2)(1, 2) からマス (2,2)(2, 2) へ動かし、22 回目の操作でルークをマス (2,2)(2, 2) からマス (2,1)(2, 1) に動かす。

入力例 2

1000000000 1000000000 1000000
1000000000 1000000000 1000000000 1000000000

出力例 2

24922282

998244353998244353 で割った余りを求めなければならないことに注意して下さい。


入力例 3

3 3 3
1 3 3 3

出力例 3

9