在 RightAngleles 市,街道被建成一个无限的方格网——任意两条街道要么相互平行,要么相互垂直,且相邻的两条平行街道之间的距离相同(我们将这个距离表示为一个单位)。所有东西走向的街道被称为水平街道,并从南到北用连续的整数进行编号。所有南北走向的街道被称为垂直街道,并从西到东用连续的整数进行编号。
每个市民都住在一栋房子里,房子的入口位于某个特定的水平和垂直街道交叉口。同一栋房子里可能住着多个市民。
RightAngleles 市的市长希望通过在主水平街道(编号为 $0$)与某条垂直街道的交叉口举办一场烟花表演来提高自己的声望。已知对观看烟花感兴趣的市民的居住位置。烟花可以沿着举办表演的交叉口所在的水平和垂直两条街道看到;此外,出于安全原因,在表演期间,观众必须距离烟花发射的交叉口至少 $S$ 个单位。
因此,如果烟花在垂直街道 $V$ 与主水平街道的交叉口发射,那么每个感兴趣的市民必须来到主水平街道(编号为 $0$)或垂直街道 $V$ 上的某个交叉口,且该位置与主水平街道和垂直街道 $V$ 的交叉口(即发射点)的距离不能小于 $S$ 个单位。例如,如果 $S=2$,则可以在主水平街道上的任何交叉口观看,除了与垂直街道 $V-1$、$V$ 和 $V+1$ 相交的交叉口;也可以在垂直街道 $V$ 上的任何交叉口观看,除了与水平街道 $-1$、$0$ 和 $1$ 相交的交叉口。
烟花带来的总体积极影响与市民为了观看表演需要移动的总距离密切相关。因此,必须选择一个发射交叉口,以使该总距离最小化。
例如,如果 $S=2$,且有 7 个市民,其位置如图所示(其中有两人住在 $(-4, 8)$),那么烟花发射的最佳位置是主水平街道与第 $8$ 条垂直街道的交叉口;在这种情况下,市民需要移动的总距离为 $9$ 个单位。
编写一个程序,计算市民为了观看烟花而必须移动的最小可能总距离(以单位为单位)。
输入格式
第一行包含两个由空格分隔的正整数:市民人数 $N$($N \le 10^5$)和安全距离 $S$($S \le 10^6$),单位为单位长度。
接下来的 $N$ 行包含市民位置的描述。每行包含两个由空格分隔的整数 $H_i$ 和 $V_i$($-10^9 \le H_i, V_i \le 10^9$),分别表示第 $i$ 个市民家入口所在的水平街道和垂直街道的编号。
输出格式
输出仅包含一个整数——市民为了观看烟花必须移动的最小总距离(以单位为单位)。
样例
输入样例 1
7 2 3 -2 0 8 -4 8 -1 4 -2 13 -4 8 1 5
输出样例 1
9
子任务
- 对于 $0 \le V_i \le 5000$ 的测试点,分值为 20 分。
- 对于 $N \le 5000$ 的测试点,分值为 40 分。