#2361. 亮灯

亮灯

题目描述

有一台灯,这个灯在时间为m\red{m }时打开,0\red{0 }时关闭,在0\red{0}到这段时m\red{m }间内有n\red{n }个时间点 0<a1<a2<a3<...<an<m\red{0<a_1<a_2<a_3<...<a_n<m,}

在这些时间点灯的状态会改变(即开变关,关变开),现在可以在剩余的时间点中选至多一个时间点 x(x\red{x(x≠}ai,\red{a_i,}0<x<m)\red{0<x<m)}让灯的状态改变一次,求这个灯最大亮着的时间。

(也可以选择不改变)

如果灯在 x\red{x}时刻开到 y\red{y}时刻关闭,那么亮着的时间为 yx\red{y-x}

输入格式

第一行两个整数 n,m\red{n,m}

第二行有 n\red{n}个整数,表示会在 a1,a2,a3...an(0<a1<a2<a3<...<an<m)\red{a_1,a_2,a_3...a_n(0<a_1<a_2<a_3<...<a_n<m)}

时间点灯的状态会发生改变。

输出格式

一个整数,表示灯亮着的最大时间。

样例

输入样例1

3 10 

4 6 7

输出样例1

8

输入样例2

2 12 

1 10

输出样例2

9

提示

第一个样例让灯在3\red{3 }处改变状态,结果为 (30\red{(3-0)}+\red{+(}64\red{6-4)}+\red{+(}107\red{10-7)}=8\red{=8}

第二个样例让灯在 2\red{2}处改变状态,结果为(10)=(102)=9\red{1-0)=(10-2)=9}

对于30%\red{30\%}的数据满足2<=m<=1000\red{2<=m<=1000}

对于100%\red{100\%}的数据满足1<=n<=105,2<=m<=109\red{1<=n<=10^5,2<=m<=10^9},并且满足n<m\red{n<m}.