#exawizards2019d. [exawizards2019_d]Modulo Operations

[exawizards2019_d]Modulo Operations

問題文

すぬけ君は黒板と NN 個の整数からなる集合 SS を持っています。 SSii 番目の要素は SiS_i です。

すぬけ君は黒板に整数 XX を書いたのち、以下の操作を NN 回行います。

  • SS から要素を 11 つ選んで取り除く。
  • その後、現在黒板に書かれた数を xxSS から取り除かれた整数を yy として、黒板に書かれた数を xbmodyx \\bmod {y} に書き換える。

SS から要素を取り除く順序は N!N! 通りありえます。 それぞれの場合について、NN 回の操作後に黒板に書かれている数を求め、その総和を 109+710^{9}+7 で割ったあまりを求めてください。

制約

  • 入力は全て整数である。
  • 1leqNleq2001 \\leq N \\leq 200
  • 1leqSi,Xleq1051 \\leq S_i, X \\leq 10^{5}
  • SiS_i たちは相異なる。

入力

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

NN XX S1S_1 S2S_2 ldots\\ldots SNS_{N}

出力

答えを出力せよ。


入力例 1

2 19
3 7

出力例 1

3
  • SS から数を取り除く順序は 22 通りあります。
  • 3,73,7 の順で取り除いたとき、黒板に書かれた数は 19rightarrow1rightarrow119 \\rightarrow 1 \\rightarrow 1 と変化します。
  • 7,37,3 の順で取り除いたとき、黒板に書かれた数は 19rightarrow5rightarrow219 \\rightarrow 5 \\rightarrow 2 と変化します。
  • これらの総和である 33 を出力してください。

入力例 2

5 82
22 11 6 5 13

出力例 2

288

入力例 3

10 100000
50000 50001 50002 50003 50004 50005 50006 50007 50008 50009

出力例 3

279669259
  • 総和を 109+710^{9}+7 で割ったあまりを求めるのを忘れずに。