#agc059f. [agc059_f]LIDS

[agc059_f]LIDS

問題文

N,pos,valN, pos, val が与えられるので、(1,2,ldots,N)(1,2,\\ldots,N) の順列 P=(P1,P2,ldots,PN)P=(P_1, P_2, \\ldots, P_N) であって次の条件をすべて満たすものの個数を 109+710^9+7 で割った余りを求めてください。

  • LIS(P)+LDS(P)=N+1LIS(P) + LDS(P) = N+1
  • Ppos=valP_{pos} = val

ここで、LIS(P)LIS(P)PP の最長増加部分列の長さを表し、LDS(P)LDS(P)PP の最長減少部分列の長さを表します。

制約

  • 1leNle5cdot1061 \\le N \\le 5\\cdot 10^6
  • 1lepos,valleN1 \\le pos, val \\le N
  • 入力中のすべての値は整数である。

入力

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

NN pospos valval

出力

答えを出力せよ。


入力例 1

3 2 2

出力例 1

2

条件を満たす順列は (1,2,3),(3,2,1)(1, 2, 3), (3, 2, 1) です。


入力例 2

4 1 1

出力例 2

6

条件を満たす順列は $(1, 2, 3, 4), (1, 2, 4, 3), (1, 3, 2, 4), (1, 3, 4, 2), (1, 4, 2, 3), (1, 4, 3, 2)$ です。


入力例 3

5 2 5

出力例 3

11

入力例 4

2022 69 420

出力例 4

128873576