atcoder#KEYENCE2019D. Double Landscape

Double Landscape

配点 : 500500

問題文

NNMM 列のグリッドに,11 から N×MN \times M までの整数を重複のないように 11 つずつ書き込むことを考えます. ここで,普通に書き込むのでは面白くないと思った高橋君は,以下の条件を満たすように数を書き込むことにしました.

  • ii 行目に書き込まれている値のうち,最大の値は AiA_i (1iN)(1 \leq i \leq N)
  • jj 列目に書き込まれている値のうち,最大の値は BjB_j (1jM)(1 \leq j \leq M)

高橋君のために,この条件を満たすような書き込み方の個数を 109+710^9 + 7 で割ったあまりを求めてください.

制約

  • 1N10001 \leq N \leq 1000
  • 1M10001 \leq M \leq 1000
  • 1AiN×M1 \leq A_i \leq N \times M
  • 1BjN×M1 \leq B_j \leq N \times M
  • Ai,BjA_i, B_j は整数

入力

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

NN MM

A1A_1 A2A_2 ...... ANA_{N}

B1B_1 B2B_2 ...... BMB_{M}

出力

条件を満たすような書き込み方の個数を 109+710^9 + 7 で割ったあまりを出力せよ.

2 2
4 3
3 4
2

(A1,A2)=(4,3)(A_1, A_2) = (4, 3)(B1,B2)=(3,4)(B_1, B_2) = (3, 4) であり,この場合は以下の 22 通りの書き込み方があります.

  • 1111 列目に 111122 列目に 442211 列目に 332222 列目に 22
  • 1111 列目に 221122 列目に 442211 列目に 332222 列目に 11
3 3
5 9 7
3 6 9
0

どのような書き込み方をしても条件を満たすことができないので,00 を出力します.

2 2
4 4
4 4
0
14 13
158 167 181 147 178 151 179 182 176 169 180 129 175 168
181 150 178 179 167 180 176 169 182 177 175 159 173
343772227