#include using namespace std; typedef long long ll; template struct BinaryIndexedTree{ vector dat; BinaryIndexedTree(int n):dat(n+1,0){} void add(int i,T x){ if (i==0) return; for (;i<=dat.size();i+=(i&-i)) dat[i]+=x; } T sum(int i){ T res=0; for (;i>0;i-=(i&-i)) res+=dat[i]; return res; } T query(int l,int r){ //[l,r) return sum(r-1)-sum(l-1); } int lower_bound(T x){ if (x<=0) return 0; int lb=0,r=1; while(r0;r>>=1){ if (lb+r> N >> Q; vector A(N),B(N,0); for (int i=0;i> A[i]; vector c(Q); vector x(Q),y(Q); for (int i=0;i> c[i] >> x[i] >> y[i]; BinaryIndexedTree BIT(N+1); for (int i=Q-1;i>=0;--i){ if (c[i]=='A'){ B[x[i]-1]+=y[i]*BIT.sum(x[i]); } else { BIT.add(x[i],1); BIT.add(y[i]+1,-1); } } for (int i=0;i