#include<bits/stdc++.h>
using namespace std;
#define ll long long

const ll N=1e6+7;
ll seg[N*4],lazy[N*4],on[N*4],cnt[N*4];
ll state[N],point[N],nw[N];

void build(ll n,ll b,ll e){
    if(b==e){
        if(nw[b]==1) on[n]=1;
        return;
    }
    ll mid=(b+e)/2;
    build(2*n,b,mid);
    build(2*n+1,mid+1,e);
    on[n]=on[2*n]+on[2*n+1];
}
void update(ll n,ll b,ll e,ll l,ll r){    
   	if(cnt[n]%2) on[n]=e-b+1-on[n];
	if(b!=e) {
		cnt[2*n]+=cnt[n];
		cnt[2*n+1]+=cnt[n];
	}
	cnt[n]=0;
    if(e<l || b>r) return;
    if(b>=l && e<=r){
    	cnt[n]++;
    	if(b!=e){cnt[2*n]++;cnt[2*n+1]++;}
        if(cnt[n]%2) on[n]=e-b+1-on[n];
        cnt[n]=0;
        return ;                	       
    }
    ll mid=(b+e)/2;
    update(2*n,b,mid,l,r);
    update(2*n+1,mid+1,e,l,r);
    on[n]=on[2*n]+on[2*n+1];
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    ll n,m;cin>>n>>m;
    ll ans=0;
    ll neg[n+1]={0},id=1;
    for(ll i=1;i<=n;i++){
        cin>>state[i]>>point[i];
        ans+=point[i];
        if (state[i]!=-1){
        	nw[id]=state[i];
        	id++;
    	}
    	neg[i]=neg[i-1]+(state[i]==-1);
    }
    n=id-1;
    build(1,1,n); 
    for(ll i=0;i<m;i++){
        char ch;
        cin>>ch;
        if(ch=='C'){
            ll val;cin>>val;
            ans+=on[1]*val;
        }
        else{ 
            ll l,r;cin>>l>>r;
            l++;r++;
            l-=neg[l-1];r-=neg[r];
            if(l>r) continue;
            update(1,1,n,l,r);
        }
    }
    cout<<ans<<"\n";
}