#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int t;
  t = 1;
  while (t--) {
    long long int n, q;
    cin >> n >> q;
    set<long long int> s;
    long long int i, type, x;
    vector<long long int> v[n + 1];
    long long int curr = 0;
    for (i = 0; i < q; i++) {
      cin >> type >> x;
      if (type == 1) {
        v[x].push_back(++curr);
        s.insert(curr);
      }
      if (type == 2) {
        for (long long int j = 0; j < v[x].size(); j++) {
          long long int idx = v[x][j];
          s.erase(idx);
        }
        v[x].clear();
      }
      if (type == 3) {
        while (!s.empty() && *s.begin() <= x) {
          s.erase(*s.begin());
        }
      }
      cout << s.size() << endl;
    }
  }
  return 0;
}
