#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
int n, x;
cin >> n >> x;
vector<int> a(n), dp(n), lis(n, INT_MAX);
for (auto &e : a) cin >> e;
int mx = 1;
for (int i = 0; i < n; i++) {
int lb = lower_bound(lis.begin(), lis.end(), a[i]) - lis.begin();
lis[lb] = a[i], dp[i] = lb + 1, mx = max(mx, dp[i]);
}
fill(lis.begin(), lis.end(), INT_MAX);
for (int i = n-1; i >= 0; i--) {
int lb = lower_bound(lis.begin(), lis.end(), -a[i] + x) - lis.begin();
mx = max(mx, lb + dp[i]);
lb = lower_bound(lis.begin(), lis.end(), -a[i]) - lis.begin();
lis[lb] = -a[i];
}
cout << mx;
}