在广受欢迎的年度“啤酒马拉松”的摊位版本中,赛道沿途设置了许多啤酒摊位(也称为啤酒售卖亭)。所有参赛者在比赛中都需要按规定访问一定数量的啤酒摊位。根据比赛规则,任意两个相邻啤酒摊位之间的距离必须完全相等,且等于一个特定的数值。
负责安装啤酒摊位的公司工作极其草率(尽管他们拿到了高额报酬),他们将啤酒摊位随意地放置在赛道沿途,然后就离开了。幸运的是,得益于先进的 AI 技术,该公司能够报告出每个啤酒摊位在赛道上的确切位置(以米为单位,相对于赛道上的某个锚点)。马拉松组委会打算派遣志愿者将这些啤酒摊位移动到符合比赛规则的新位置。
他们希望最小化所有啤酒摊位移动的总距离(以米为单位)。比赛的起点和终点线将根据啤酒摊位最终的位置稍后确定。
输入格式
输入的第一行包含两个整数 $N$ 和 $K$ ($1 \le N, K \le 10^6$),其中 $N$ 是啤酒摊位的数量,$K$ 是相邻啤酒摊位之间规定的距离。输入的第二行包含 $N$ 个互不相同的整数 $x_1, \dots, x_N$ ($-10^6 \le x_i \le 10^6$),表示啤酒摊位相对于锚点的原始位置(单位:米)。正值表示位于锚点之后的位置,负值表示位于锚点之前的位置。
输出格式
输出一个整数,表示为了满足比赛规则,所有啤酒摊位需要移动的最小总距离(单位:米)。
样例
样例输入 1
3 1 2 5 7
样例输出 1
3
样例输入 2
10 4 140 26 69 55 39 64 2 89 78 421
样例输出 2
511