#include <bits/stdc++.h>
using namespace std;
const int N = 1e2 + 9, INF = 1e7;
const double PI = 3.141592653589793238462643383279502884197, eps = 1e-6;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int n, T, x, ans = 0, mx = 0;
  multiset<int> st;
  multiset<int>::iterator it;
  cin >> n >> T;
  int t[n];
  for (int i = 0; i < n; i++) cin >> t[i];
  for (int i = 0; i < n; i++) {
    x = T - i - 1;
    st.insert(max(t[i] - i - 1, 0));
    it = st.end();
    it--;
    while (st.size() && *it >= x && !(!x && !(*it))) {
      st.erase(it);
      if (st.size()) it = st.end(), it--;
      ans--;
    }
    ans += 1 - (!x && !(*it));
    mx = max(mx, ans);
  }
  cout << mx;
  return 0;
}
