#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long ll; typedef pair P; const ll INF=1e9; struct RSQandRUQ{ vector sum, part; int n, m; RSQandRUQ(int size):n(size){ m=1; while(m>n>>q; RSQandRUQ a(n), b(n); ll ansa=0, ansb=0; for(int i=0; i>x>>l>>r; if(x==0){ ll s=b.getsum(l, r+1), t=a.getsum(l, r+1); if(s>0) ansa+=(s+t)/2; else if(s<0) ansb+=(t-s)/2; }else if(x==1){ a.update(l, r+1, 1); b.update(l, r+1, 1); }else{ a.update(l, r+1, 1); b.update(l, r+1, -1); } } ll s=b.getsum(0, n), t=a.getsum(0, n); ansa+=(s+t)/2; ansb+=(t-s)/2; cout<