#include<bits/stdc++.h>
#define ll long long
// #define int long long
#define int_128 __int128
using namespace std;
struct nd{
int l,r;
long long maxx,minn=1e18;
long long sum;
}c[10005];
int len;
int n,m;
long long a[1000005];
int pos[1000005];
void add(int l,int r,int x){
for(int i=l;i<=r;i++){
if(c[pos[i]].l==i&&c[pos[i]].r<=r){
c[pos[i]].sum+=x;
i=c[pos[i]].r;
c[pos[i]].maxx+=x;
c[pos[i]].minn+=x;
}
else {
a[i]+=x;
c[pos[i]].maxx=max(c[pos[i]].maxx,a[i]+c[pos[i]].sum);
}
}
}
int ask(int l,int r,int x){
int cnt=0;
for(int i=l;i<=r;i++){
if(c[pos[i]].l==i&&c[pos[i]].r<=r){
if(c[pos[i]].maxx<x){
i=c[pos[i]].r;
continue;
}
else if(c[pos[i]].minn>=x){
i=c[pos[i]].r;
cnt+=c[pos[i]].r-c[pos[i]].l+1;
continue;
}
}
if(a[i]+c[pos[i]].sum>=x) {
cnt++;
}
}
return cnt;
}
signed main() {
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
len=sqrt(n);
if(len>n) len=n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++){
pos[i]=i/len+(i%len!=0);
if(i%len==1){
c[pos[i]].l=i;
}
c[pos[i]].r=i;
c[pos[i]].minn=min(c[pos[i]].minn,a[i]);
c[pos[i]].maxx=max(c[pos[i]].maxx,a[i]);
}
for(int i=1;i<=m;i++){
char op;
int l,r;
long long x;
cin>>op>>l>>r>>x;
if(op=='A'){
cout<<ask(l,r,x)<<"\n";
}
else {
add(l,r,x);
}
}
return 0;
}