#include<bits/stdc++.h>
using namespace std;
map<int,int>t;
map<int,int>num;
map<int,int>k;
int main()
{
int ans=0;
int n,m;
cin>>n>>m;
int maxT=0;
for(int i=1;i<=n;i++)cin>>t[i],maxT=max(maxT,t[i]);
for(int i=1;i<=n;i++) num[t[i]] ++ ,num[t[i]+m]--;
for(int i=1;i<=maxT+m-1;i++)
{
k[i] = k[i-1] +num[i];
if(k[i]==1) ans++;
}
int maxva = -INT_MAX ;
int qz[maxT+m]={0};
for(int i=1;i<=maxT+m-1;i++)
{
if(k[i] == 1) qz[i] = qz[i-1] - 1;
else if(k[i] == 2) qz[i] = qz[i-1] + 1;
else qz[i]=qz[i-1];
}
for(int i=1;i<=n;i++)
{
maxva = max(maxva,qz[t[i]+m-1]-qz[t[i]-1]);
}
cout<<maxva + m + ans <<endl;
return 0;
}