func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 500010;   int ans[N], arr[N], MAX[N];   long long power_mod(long long x, long long y) {     x %= 1000000007;     long long res = 1;     while (y) {       if (y & 1) {         res = (res * x) % 1000000007;       }       y /= 2;       x = (x * x) % 1000000007;     }     return res;   }   void solve() {     int n;     cin >> n;     vector<pair<int, int>> v(N);     for (int i = 1; i <= n; i++) {       cin >> v[i].first >> v[i].second;       ans[i] = MAX[i] = 1;     }     sort(v.begin() + 1, v.begin() + n + 1);     arr[n + 1] = v[n].second + 1;     for (int i = 1; i <= n; i++) {       arr[i] = v[i].first;     }     int ma = 0;     for (int i = n; i >= 1; i--) {       int up = upper_bound(arr + 1, arr + 2 + n, v[i].second) - arr;       int p = ans[i];       ans[i] = max(ans[i], ans[i + 1]);       ans[i] = max(ans[i], p + ans[up]);     }     int res = *max_element(ans, ans + n + 1);     cout << res <<   n ;   }   int32_t main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     ;     int tc = 1;     while (tc--) {       solve();     }     return 0;   }   