func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long INF = 1e18;   const double PI = acos(-1);   long long mod = 1e9 + 7;   struct segment {     long long l, r;     bool operator<(const segment& s) const {       if (r != s.r) return r > s.r;       return l < s.l;     }   };   const long long MAXN = 2e5 + 7;   vector<segment> vs(MAXN);   vector<long long> sum(MAXN, 0), sub(MAXN, 0), ans(MAXN, 0);   vector<vector<long long>> vv(MAXN);   int32_t main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long n, k, l, r;     cin >> n >> k;     long long m = 1;     for (long long i = 0; i < n; i++) {       cin >> vs[i].l >> vs[i].r;       m = max(m, vs[i].r);       sum[vs[i].l]++;       sum[vs[i].r + 1]--;       vv[vs[i].l].push_back(i + 1);       vv[vs[i].r + 1].push_back(-i - 1);     }     for (long long i = 1; i <= m; i++) sum[i] += sum[i - 1];     set<pair<segment, long long>> s;     long long cntSub = 0;     long long cnt = 0;     for (long long i = 1; i <= m; i++) {       for (long long& idx : vv[i]) {         if (idx > 0) {           s.insert({vs[idx - 1], idx});         } else {           idx *= -1;           s.erase({vs[idx - 1], idx});         }       }       cntSub += sub[i];       while (sum[i] - cntSub > k) {         auto it = *s.begin();         cntSub++;         s.erase(it);         sub[it.first.r + 1]--;         ans[it.second] = 1;         cnt++;       }     }     cout << cnt <<   n ;     for (long long i = 1; i <= n; i++)       if (ans[i]) cout << i <<    ;     cout <<   n ;     return 0;   }   