#include <bits/stdc++.h>
using namespace std;
#define int long long
const int INF = 1e6 + 5;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, x;
cin >> n >> x;
vector < int > a(n);
for(int &i : a)cin >> i;
vector < int > lis, pr(n), pr_id(n);
for(int i = 0; i < n; i++){
auto it = lower_bound(lis.begin(), lis.end(), a[i]);
if(it == lis.end())
lis.push_back(a[i]);
else
*it = a[i];
pr_id[i] = lis.back();
pr[i] = (int)lis.size();
}
vector < int > lds, suf(n), suf_id(n);
for(int i = n - 1; i >= 0; i--){
auto it = lower_bound(lds.begin(), lds.end(), a[i], greater < int > ());
if(it == lds.end())
lds.push_back(a[i]);
else
*it = a[i];
suf_id[i] = lds.back();
suf[i] = (int)lds.size();
}
int mx = pr[n - 1];
for(int i = 0; i < n - 1; i++){
if(pr_id[i] - x < suf_id[i + 1]){
mx = max(mx, pr[i] + suf[i + 1]);
}
}
cout << mx << endl;
}