func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 3e5 + 5;   int n, q;   set<pair<int, int> > st;   set<int> unread[N];   int32_t main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     ;     cin >> n >> q;     int cnt = 0;     while (q--) {       int type, x;       cin >> type;       if (type == 1) {         cin >> x;         ++cnt;         st.insert({cnt, x});         unread[x].insert(cnt);       } else if (type == 2) {         cin >> x;         for (auto it : unread[x]) st.erase({it, x});         unread[x].clear();       } else {         cin >> x;         while (!st.empty() and st.begin()->first <= x) {           auto p = *(st.begin());           st.erase(st.begin());           unread[p.second].erase(p.first);         }       }       cout << st.size() <<   n ;     }     return 0;   }   