問題文
N 項からなる正整数列 A=(A1,A2,ldots,AN) が与えられます。あなたはこの数列に対して、次の操作を 0 回以上 K 回以下行うことができます:
- iin1,2,ldots,N をひとつ選び、Ai に 1 を加える。
操作後の gcd(A1,A2,ldots,AN) としてありうる最大値を求めてください。
制約
- 2leqNleq3times105
- 1leqKleq1018
- 1leqAileq3times105
入力
入力は以下の形式で標準入力から与えられます。
N K
A1 A2 ldots AN
出力
操作後の gcd(A1,A2,ldots,AN) としてありうる最大値を出力してください。
入力例 1
3 6
3 4 9
出力例 1
5
例えば以下のようにして、gcd(A1,A2,A3)=5 を実現できます。
- i=1 に対して 2 回、i=2 に対して 1 回、i=3 に対して 1 回の操作を行う。合計の操作回数は 4 回で、K=6 以下である。
- 操作の結果、A1=5, A2=5, A3=10 となり、gcd(A1,A2,A3)=5 である。
入力例 2
3 4
30 10 20
出力例 2
10
操作を一度も行わないことで、gcd(A1,A2,A3)=10 を実現できます。
入力例 3
5 12345
1 2 3 4 5
出力例 3
2472