#include #include #include using namespace std; const int maxn=1e6+7; int n,q,a[maxn],b[maxn],l[maxn],r[maxn],bid[maxn],add[maxn],blo,tts; void reset(int x) { for(int i=l[bid[x]];i<=r[bid[x]];i++) b[i]=a[i]; sort(b+l[bid[x]],b+r[bid[x]]+1); } void update(int ll,int rr,int w) { if(bid[ll]==bid[rr]) { for(int i=ll;i<=rr;i++) a[i]+=w; reset(ll); } for(int i=ll;i<=r[bid[ll]];i++) a[i]+=w; for(int i=l[bid[rr]];i<=rr;i++) a[i]+=w; reset(ll); reset(rr); for(int i=bid[ll]+1;i=w) res++; return res; } for(int i=ll;i<=r[bid[ll]];i++) if(a[i]+add[bid[i]]>=w) res++; for(int i=l[bid[rr]];i<=rr;i++) if(a[i]+add[bid[i]]>=w) res++; for(int i=bid[ll]+1;i