



神奇TLE代码:
#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define eb emplace_back
#define E emplace
#define ist insert
#define adv advance
#define ull unsigned long long
#define IN(a) freopen(a".in","r",stdin)
#define OUT(a) freopen(a".out","w",stdout)
#define FILE(a) IN(a),OUT(a)
#define FAST cin.sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define UP(a,b,c) for(int a = b;a<=c;a++)
#define DW(a,b,c) for(int a = b;a>=c;a--)
#define F(a,b,c,d) for(int a = b;c;a+=d)
#define W while
#define Ls(a) a<<1
#define Rs(a) a<<1|1
#define fi first
#define se second
#define mkp make_pair
#define IL inline
using namespace std;
int n,q;
set<pair<int,int> >st[200005];
vector<int>cnt;
set<int>st2;
signed main(){
FAST;
FILE("a");
cin>>n>>q;
int res = 0;
W(q--){
int op;
cin>>op;
if(op==1){
int x;
cin>>x;
x--;
st[x].E(cnt[x]++,res);
st2.ist(res++);
}else if(op==2){
int x,l,r;
cin>>x>>l>>r;
x--,l--;
for(auto it = st[x].lower_bound({l,0});
it!=st[x].end()&&it->fi < r;
st2.erase(it->se),it = st[x].erase(it));
}else{
int x;
cin>>x;
auto it = st2.begin();
adv(it,x);
st2.erase(st2.begin(),it);
}
cout<<st2.size()<<'\n';
}
return 0;
}