#include <bits/stdc++.h>
using namespace std;
const int maxn = 300005;
vector<int> v[maxn];
set<int> s;
int n, q;
int main() {
  cin >> n >> q;
  int cnt = 0, a, b;
  while (q--) {
    cin >> a >> b;
    if (1 == a) {
      v[b].push_back(++cnt);
      s.insert(cnt);
    } else if (2 == a) {
      for (int i = 0; i < v[b].size(); ++i) {
        int id = v[b][i];
        s.erase(id);
      }
      v[b].clear();
    } else {
      while (!s.empty()) {
        if (*s.begin() > b) break;
        s.erase(*s.begin());
      }
    }
    cout << s.size() << endl;
  }
  return 0;
}
