#arc126c. [arc126_c]Maximize GCD

[arc126_c]Maximize GCD

問題文

NN 項からなる正整数列 A=(A1,A2,ldots,AN)A = (A_1, A_2, \\ldots, A_N) が与えられます。あなたはこの数列に対して、次の操作を 00 回以上 KK 回以下行うことができます:

  • iin1,2,ldots,Ni\\in \\{1,2,\\ldots,N\\} をひとつ選び、AiA_i11 を加える。

操作後の gcd(A1,A2,ldots,AN)\\gcd(A_1, A_2, \\ldots, A_N) としてありうる最大値を求めてください。

制約

  • 2leqNleq3times1052\\leq N\\leq 3\\times 10^5
  • 1leqKleq10181\\leq K\\leq 10^{18}
  • 1leqAileq3times1051 \\leq A_i\\leq 3\\times 10^5

入力

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

NN KK A1A_1 A2A_2 ldots\\ldots ANA_N

出力

操作後の gcd(A1,A2,ldots,AN)\\gcd(A_1, A_2, \\ldots, A_N) としてありうる最大値を出力してください。


入力例 1

3 6
3 4 9

出力例 1

5

例えば以下のようにして、gcd(A1,A2,A3)=5\\gcd(A_1, A_2, A_3) = 5 を実現できます。

  • i=1i = 1 に対して 22 回、i=2i = 2 に対して 11 回、i=3i=3 に対して 11 回の操作を行う。合計の操作回数は 44 回で、K=6K=6 以下である。
  • 操作の結果、A1=5A_1 = 5, A2=5A_2 = 5, A3=10A_3 = 10 となり、gcd(A1,A2,A3)=5\\gcd(A_1, A_2, A_3) = 5 である。

入力例 2

3 4
30 10 20

出力例 2

10

操作を一度も行わないことで、gcd(A1,A2,A3)=10\\gcd(A_1, A_2, A_3) = 10 を実現できます。


入力例 3

5 12345
1 2 3 4 5

出力例 3

2472