#include<bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN=1e6+7,maxn=1e3+7;
int a[MAXN],s[maxn];
signed main()
{
int n,q;
scanf("%lld%lld",&n,&q);
int len=sqrt(n);
for(int i(1);i<=n;++i)
scanf("%lld",&a[i]);
for(int i(1);i<=n;++i)
if((i-1)%len==0&&((i-1)/len+1)*len<=n)
{
sort(a+((i-1)/len)*len+1,a+((i-1)/len+1)*len+1);
i=((i-1)/len+1)*len;
}
while(q--)
{
char opt;
int l,r,c;
cin>>opt;
scanf("%lld%lld%lld",&l,&r,&c);
if(opt=='M')
{
for(int j(l);j<=r;++j)
{
if((j-1)%len!=0||((j-1)/len+1)*len>r)
{
a[j]+=c;
if(j%len==0)
sort(a+(j/len)*len+1,a+(j/len+1)*len+1);
}
else
{
s[(j-1)/len+1]+=c;
j=((j-1)/len+1)*len;
}
}
}
else
{
int ans=0;
for(int j(l);j<=r;++j)
{
if((j-1)%len!=0||((j-1)/len+1)*len>r)
{
if(a[j]+s[(j-1)/len+1]>=c)
ans++;
}
else
{
int ls=j,rs=((j-1)/len+1)*len,cnt=-1;
while(ls<=rs)
{
int mid=(ls+rs)>>1;
if(a[mid]+s[(j-1)/len+1]>=c)
{
cnt=mid;
rs=mid-1;
}
else
ls=mid+1;
}
if(cnt!=-1)
ans+=max(0ll,((j-1)/len+1)*len-cnt+1);
j=((j-1)/len+1)*len;
}
}
printf("%lld\n",ans);
}
}
}