#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
int n ,m ;
vector<int> p;
vector<int> cnt;
vector<int> c;
int main(){
cin >> n >> m;
p.resize(n);
cnt.resize(n);
c.resize(n);
int x = 0;
for(int i = 0; i < n; ++i)cin >> p[i];
sort(p.begin(),p.end());
for(int i = 1; i <n ; ++i){
if(p[i] <= p[i - 1] + m -1){
cnt[i - 1] = min(m,cnt[i - 1] + p[i - 1] + m -p[i]);
cnt[i] = min(m,cnt[i] + p[i - 1] + m - p[i]);
c[i - 1] = cnt[i - 1];
c[i] = cnt[i];
}
}
for(int i = 0; i < n ; ++ i){
bool flag = false;
if(i - 1 >= 0 && i + 1 < n && p[i - 1] + m - 1 >= p[i + 1]){
c[i] -= p[i - 1] + m - p[i + 1];
flag =true;
}
if(i - 2 >= 0 && p[i - 2] + m - 1 >= p[i]){
if(flag && p[i - 2] + m - 1 >= p[i + 1])c[i] -= p[i + 1] - p[i];
else c[i] -= p[i - 2] +m - p[i];
}
if(i + 2 < n && p[i] + m - 1 >= p[i + 2]){
if(flag && p[i - 1] + m - 1 >= p[i + 2]) c[i] -= p[i] - p[i - 1];
else c[i] -=p[i] + m - p[i + 2];
}
}
int res = 0 , maxm = 0;
for(int i = 0; i< n ;++i){
res += m - cnt[i];
if(cnt[i] + c[i] > maxm)maxm = cnt[i] + c[i];
}
cout << res + maxm ;
return 0;
}