func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T, typename S>   ostream &operator<<(ostream &os, const pair<T, S> &v) {     os <<  ( ;     os << v.first <<  ,  << v.second <<  ) ;     return os;   }   template <typename T>   ostream &operator<<(ostream &os, const vector<T> &v) {     os <<  [ ;     long long sz = v.size();     for (long long i = 0; i < sz; ++i) {       os << v[i];       if (i != sz - 1) os <<  , ;     }     os <<  ] n ;     return os;   }   template <typename T>   ostream &operator<<(ostream &os, const set<T> &v) {     T last = *v.rbegin();     os <<  [ ;     for (auto it : v) {       os << it;       if (it != last) os <<  , ;     }     os <<  ] n ;     return os;   }   template <typename T, typename S>   ostream &operator<<(ostream &os, const map<T, S> &v) {     for (auto it : v) {       os << it.first <<   :   << it.second <<   n ;     }     return os;   }   long long power(long long a, long long b) {     long long res = 1;     while (b) {       if (b % 2) {         res = (res * a) % 1000000007;       }       b /= 2;       a = (a * a) % 1000000007;     }     return res;   }   template <typename Arg1>   void __f(const char *name, Arg1 &&arg1) {     cerr << name <<   :   << arg1 << std::endl;   }   template <typename Arg1, typename... Args>   void __f(const char *names, Arg1 &&arg1, Args &&...args) {     const char *comma = strchr(names + 1,  , );     cerr.write(names, comma - names) <<   :   << arg1 <<   |  ;     __f(comma + 1, args...);   }   int32_t main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     long long n, T;     cin >> n >> T;     vector<pair<long long, long long> > arr;     for (__typeof(1) i = 1; i <= n; i++) {       long long t;       cin >> t;       long long from = t - i;       long long to = T - i;       if (to > from && to > 0) {         arr.push_back({from, 1});         arr.push_back({to, -1});       }     }     sort((arr).begin(), (arr).end());     long long curr = 0, ans = 0;     for (auto it : arr) {       curr += it.second;       ans = max(ans, curr);     }     cout << ans << endl;     return 0;   }   