RT
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
register int x=0,f=1;register char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
const int N=5e5+100,inf=1e9,MOD=1e9+7;
int n,m;
char str[N],a[N];
struct Chtholly{
int l,r;
mutable int val;
Chtholly(int L,int R=0,int v=0):l(L),r(R),val(v){}
bool operator<(const Chtholly &rhs)const{return l<rhs.l;}
};
set<Chtholly>s;
auto split(int pos){
auto it=s.lower_bound(Chtholly(pos));
if(it!=s.end()&&it->l==pos)return it;
it--;
if(it->r<pos)return s.end();
int l=it->l,r=it->r,v=it->val;
s.erase(it);
s.insert(Chtholly(l,pos-1,v));
return s.insert(Chtholly(pos,r,v)).first;
}
void assign(int l,int r,int x){
auto itr=split(r+1),itl=split(l);
s.erase(itl,itr);
s.insert(Chtholly(l,r,x));
}
string ask(int l,int r){
auto itr=split(r+1),itl=split(l);
auto x=prev(itl);
if(x->val==itr->val)return "No";
for(auto it=next(itl);it!=itr;it++)if(it->val!=prev(it)->val)return "No";
return "Yes";
}
signed main(){
n=read();
scanf("%s",str+1);
for(int i=1;i<=n;i++)a[i]=str[i]-'A'+1,s.insert((Chtholly){i,i,a[i]});
m=read();
while(m--){
char op[10],S[10];
int l,r;
scanf("%s%lld%lld",op,&l,&r);
if(op[0]=='A')scanf("%s",S),assign(l,r,S[0]-'A'+1);
else cout<<ask(l,r)<<endl;
}
}