#include #define rep(i, n) for (lli i = 0; i < (n); i++) #define rrep(i, n) for (lli i = (n)-1; i >= 0; i--) using namespace std; using lli = long long int; void YESNO(bool), YesNo(bool); template bool chmin(T1 &l, const T2 &r); template bool chmax(T1 &l, const T2 &r); template class bit { public: vector dat; int n; bit(int n) : n(n) { dat.assign(n, 0); } bit(int n, T ini) : n(n) { dat.assign(n, ini); } // sum [0,i) T sum(int i) { int ret = 0; for (--i; i >= 0; i = (i & (i + 1)) - 1) ret += dat[i]; return ret; } // sum [i,j) T sum(int i, int j) { return sum(j) - sum(i); } // add x to i void add(int i, T x) { for (; i < n; i |= i + 1) dat[i] += x; } }; int main() { lli N, Q; cin >> N >> Q; vector A(N), X(Q), Y(Q); vector C(Q); rep(i, N) cin >> A[i]; rep(i, Q) cin >> C[i] >> X[i] >> Y[i]; bit bi(N + 1); vector B(N); rrep(i, Q) { if (C[i] == "B") { X[i]--; bi.add(X[i], 1); bi.add(Y[i], -1); } else { X[i]--; B[X[i]] += Y[i] * bi.sum(X[i] + 1); } } rep(i, N) { B[i] += A[i] * bi.sum(i + 1); } rep(i, N) { cout << B[i] << " "; } } // -- lib void YESNO(bool b) { cout << (b ? "YES" : "NO") << endl; } void YesNo(bool b) { cout << (b ? "Yes" : "No") << endl; } template bool chmin(T1 &l, const T2 &r) { return (l > r) ? (l = r, true) : false; } template bool chmax(T1 &l, const T2 &r) { return (l < r) ? (l = r, true) : false; }