I - Product of LCM of GCD Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 600

問題文

長さ N の正整数列 A = (A_1, \dots, A_N)N の正の約数 K が与えられます。(1, 2,\dots, N) を並べ替えて得られる数列 P に対し、以下のように Pスコアを定めます。

i = 1, \dots, N に対し、B_i = A_{P_i} と定める。
i = 1, \dots, \frac{N}{K} に対し、G_i = \gcd(B_{(i - 1)K + 1}, B_{(i - 1)K + 2} \dots, B_{iK}) と定める。
\mathrm{lcm}(G_1, \dots, G_{\frac{N}{K}})P のスコアである。

P としてあり得るものは N! 通りありますが、それら全てに対する P のスコアの総積\bold{10^9 + 7} で割った余りを求めてください。

制約

  • 1 \leq N \leq 2 \times 10^5
  • KN の正の約数
  • 1 \leq A_i \leq 2 \times 10^5
  • 入力は全て整数

入力

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

N K
A_1 \ldots A_N

出力

答えを出力せよ。


入力例 1

4 2
1 2 3 4

出力例 1

256

例えば、P = (2, 4, 1, 3) のスコアは次のように計算できます。

B = (2, 4, 1, 3) である。
G = (\gcd(B_1, B_2), \gcd(B_3, B_4)) = (2, 1) である。
P のスコアは \mathrm{lcm}(G_1, G_2) = 2 である。


入力例 2

9 3
12 6 8 9 10 16 4 18 15

出力例 2

822906664