#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; 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,v=(dt-i)%n; 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)/n,v=(dt+i)%n; 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%lld",&t,&y,&z); 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; } } signed main(){ T=1; // scanf("%lld",&t); while(T--)solve(); return 0; }