#include #include #include using namespace std; pairop(paira,pairb) { if(a.first!=b.first)return min(a,b); a.second+=b.second; return a; } paire(){return make_pair((int)1e9,0);} pairmp(int f,pairx) { x.first+=f; return x; } int cmp(int f,int g){return f+g;} int id(){return 0;} int L[1<<17],R[1<<17]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N;cin>>N; vector >init(N-1,make_pair(0,1)); atcoder::lazy_segtree,op,e,int,mp,cmp,id>seg(init); int Q;cin>>Q; for(int q=0;q>o; if(o==1) { cin>>L[q]>>R[q]; seg.apply(L[q]-1,R[q]-1,1); } else if(o==2) { int t;cin>>t;t--; seg.apply(L[t]-1,R[t]-1,-1); } else { auto t=seg.all_prod(); if(t.first>0)t.second=0; cout<