Large nCr Small Modulus

2 secs 1024 MB
143-378's icon 143-378

注意

本問題は 制約強化版 です。
Ei=1E_i = 1とした簡易版は別に出題します。

問題文

二項係数(NR)\binom{N}{R}MMで割った余りを求めてください。
ここで、M=i=1CPiEiM = \prod_{i=1}^C P_i ^ {E_i}と素因数分解できることが保証されます。

制約

  • 1RN10181 \leq R \leq N \leq 10^{18}
  • 2M1072 \leq M \leq 10^7
  • M=i=1CPiEiM = \prod_{i=1}^C P_i ^ {E_i}
  • 1C1 \leq C
  • 2P1<P2<・・・<PC2 \leq P_1 < P_2 < ・・・ < P_C
  • PiP_iは互いに相異なる 素数
  • 1Ei1 \leq E_i
  • 入力はすべて整数

入力

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

NN RR MM
CC
P1P_1 P2P_2 ・・・ PCP_C
E1E_1 E2E_2 ・・・ ECE_C

出力

答えを出力せよ。

入出力例

入力例1
5 2 4
1
2
2
出力例1
2

(52)=10\binom{5}{2} = 10です。
これを44で割った余りは22です。

入力例2
55 22 44
2
2 11
2 1
出力例2
21

(5522)=1300853625660225\binom{55}{22} = 1300853625660225です。
これを4444で割った余りは2121です。

入力例3
57 29 777787
1
777787
1
出力例3
724783

(5729)=15033633249770520\binom{57}{29} = 15033633249770520です。
これを777787777787で割った余りは724783724783です。

入力例4
31415 92 65
2
5 13
1 1
出力例4
35

(3141592)3.8364×10271\binom{31415}{92} ≈ 3.8364 × 10^{271}です。
これを6565で割った余りは3535です。

入力例5
12345679 777777 720720
6
2 3 5 7 11 13
4 2 1 1 1 1
出力例5
665280

(12345679777777)4.1512×101260755\binom{12345679}{777777} ≈ 4.1512 × 10^{1260755}です。
これを720720720720で割った余りは665280665280です。

提出


Go (1.21)