#include #include #define int long long #define inf 0x3f3f3f3f3f3f3f3f #define maxn 1234567 #define eps 1e-7 #define mod 1000000007 #define Mod 998244353 #define f(i,a,b) for(int i=a;i<=b;i++) #define r(i,a,b) for(int i=a;i>=b;i--) #define fx(i,a,b,x) for(int i=a;i<=b;i+=x) #define rx(i,a,b,x) for(int i=a;i>=b;i-=x) using namespace std; using namespace __gnu_cxx; using namespace __gnu_pbds; int T; int n,q,t,y,z,cur,u,v,ans; int L[maxn],R[maxn],LL[maxn],RR[maxn]; char op; int Min(int a,int b){ return ab?a:b; } void upd(int dt){ memset(LL,0,sizeof(LL)); memset(RR,0,sizeof(RR)); f(i,0,n-1){ if(dt<=i)LL[i-dt]+=L[i],LL[i]-=L[i]; else{ u=(dt-i)/(n+1),v=(dt-i)%(n+1); if(v==0){ if(u&1)LL[n-1]+=L[i],LL[i]-=L[i]; else RR[0]+=L[i],LL[i]-=L[i]; } else{ v--; if(u&1)LL[n-1-v]+=L[i],LL[i]-=L[i]; else RR[v]+=L[i],LL[i]-=L[i]; } } if(dt<=n-i-1)RR[i+dt]+=R[i],RR[i]-=R[i]; else{ u=(dt+i+1-n)/(n+1),v=(dt+i+1-n)%(n+1); if(v==0){ if(u&1)RR[0]+=R[i],RR[i]-=R[i]; else LL[n-1]+=R[i],RR[i]-=R[i]; } else{ v--; if(u&1)RR[v]+=R[i],RR[i]-=R[i]; else LL[n-1-v]+=R[i],RR[i]-=R[i]; } } } f(i,0,n-1)L[i]+=LL[i],R[i]+=RR[i]; } void solve(){ scanf("%lld%lld",&n,&q); while(q--){ cin>>op;scanf("%lld%lld",&y,&z); t=cur+1; upd(t-cur); if(op=='C'){ ans=0; f(i,y,z-1)ans+=L[i]+R[i]; printf("%lld\n",ans); } else if(op=='L')L[y]+=z; else R[y]+=z; cur=t; // f(i,0,n-1)printf("%lld ",L[i]+R[i]); // printf("\n"); } } signed main(){ T=1; // scanf("%lld",&t); while(T--)solve(); return 0; }