最近の世の中では、日常の中でミッションをこなしてポイントを獲得し、ちょっとした景品も得られるアプテックサービスが多くある。万歩計ミッションは多くのアプテックサービスで広く使われており、毎日 $D$ m 歩くことに成功すると少しポイントが得られる。
毎日 $D$ m ずつ歩くのは思ったより面倒なことなので、ミッションを自分で行うのが面倒な人のために、ハンビョリは万歩計ミッションを代行する事業を行うスタートアップ「スタートハンビョル」を創業した。スタートハンビョルでは、まずスタートハンビョル社屋を通る東西に長く伸びた道路上に $1$ m 間隔で保管箱を設置し、整数の番号を付けた。スタートハンビョル社屋から東に $A$ m 離れた保管箱の番号は $A$、西に $A$ m 離れた保管箱の番号は $-A$、社屋にある保管箱の番号は $0$ である。
あなたはスタートハンビョル社屋から出発し、すべての顧客のミッションを遂行した後、会社に戻らなければならない。あなたが業務を始める前に、すでにすべての顧客が $X_i$ 番の保管箱に携帯電話を置いてある。あなたは $X_i$ 番の保管箱まで行って携帯電話を直接拾い、拾った後 $D$ m 以上移動した後、$X_i$ 番の保管箱に携帯電話を返却しなければならない。あなたは十分に大きな鞄を持って業務を行うため、複数の携帯電話を同時に入れて移動することができる。あなたの移動記録は勤務記録として反映されるため、必ず道路上のみを移動しなければならない。
すべての顧客のミッションを遂行して戻るために移動しなければならない最小距離を求めるプログラムを作成せよ。
入力
最初の行に顧客の数 $N$ とミッションを遂行するために歩かなければならない最小移動距離 $D$ が空白区切りで与えられる。($1 \leq N \leq 1\,000\,000$; $1 \leq D \leq 10^9$)
2 行目に各顧客が携帯電話を置いた保管箱の番号を表す $N$ 個の整数 $X_i$ が空白区切りで与えられる。($-10^9 \leq X_i \leq 10^9$)
携帯電話の位置が互いに重なったり、スタートハンビョル社屋と同じ場所にあることがある。
すべての入力値は整数である。
出力
最初の行に顧客 $N$ 人のミッションをすべて遂行して戻るために必要な最小移動距離を出力する。
答えが整数でない場合、答え以下の最大の整数を出力する。
入出力例
入力例 1
3 5 -8 1 5
出力例 1
36
注記
以下の方法を使うのが最適である。
- 2 人目の顧客の携帯電話を拾う。
- 3 人目の顧客の携帯電話を拾う。
- スタートハンビョル社屋の東 $7.5$ m 地点まで移動した後、戻って 3 人目の顧客の携帯電話を返却する。
- 2 人目の顧客の携帯電話を返却する。
- 1 人目の顧客の携帯電話を拾う。
- スタートハンビョル社屋の西 $10.5$ m 地点まで移動した後、戻って 1 人目の顧客の携帯電話を返却する。
- スタートハンビョル社屋に移動する。