#include<iostream>
#include<math.h>
#include<algorithm>
#include<stdio.h>
#include<map>
#include<vector>
#include<set>
#include<iomanip>
#define F first
#define S second
#define P system("PAUSE");
#define H return 0;
#define pb push_back
using namespace std;
const long long A=100000000000000LL,N=228228;
const long long os[2]={11,13};
const long long MOD[2]={1000000007,1073676287};
string a;
long long t[2][2][N*4],st[2][N],dp[2][N],type,l,r,d,i,j,n,m[2];
long long Get(int k,int l,int r){
l--,r--;
if(!l)return dp[k][r];else return ((dp[k][r]-dp[k][l-1])%MOD[k]+MOD[k])%MOD[k];
}
void push(int k,int v,int l,int r){
if(!t[k][1][v])return;
int mid=(l+r)/2;
t[k][0][v*2]=(t[k][1][v]*Get(k,l,mid))%MOD[k];
t[k][0][v*2+1]=(t[k][1][v]*Get(k,mid+1,r))%MOD[k];
t[k][1][v*2]=t[k][1][v*2+1]=t[k][1][v];
t[k][1][v]=0;
}
void modi(int k,int v,int l,int r,int _l,int _r,long long g){
if(_l>_r)return;
if(l==_l && r==_r){
t[k][0][v]=(g*Get(k,l,r))%MOD[k],t[k][1][v]=g;
return;
}
int mid=(l+r)/2;
push(k,v,l,r);
modi(k,v*2,l,mid,_l,min(_r,mid),g),modi(k,v*2+1,mid+1,r,max(mid+1,_l),_r,g);
t[k][0][v]=t[k][0][v*2]+t[k][0][v*2+1];
}
long long get(int k,int v,int l,int r,int _l,int _r){
if(_l>_r)return 0;
if(l==_l && r==_r)return t[k][0][v];
push(k,v,l,r);
int mid=(l+r)/2;
return (get(k,v*2,l,mid,_l,min(mid,_r))+get(k,v*2+1,mid+1,r,max(mid+1,_l),_r))%MOD[k];
}
int main(){
cin>>n>>m[0]>>m[1];
cin>>a;
for(d=0;d<2;d++){
st[d][0]=dp[d][0]=1;
for(i=1;i<n;i++)st[d][i]=st[d][i-1]*os[d],st[d][i]%=MOD[d],dp[d][i]=dp[d][i-1]+st[d][i],dp[d][i]%=MOD[d];
for(i=0;i<n;i++)modi(d,1,1,n,i+1,i+1,a[i]-'0'+1);
}
m[0]+=m[1];
while(m[0]--){
scanf("%d%d%d%d",&type,&l,&r,&d);
if(type==1){
for(i=0;i<2;i++)modi(i,1,1,n,l,r,d+1);
}else{
if(l==r || (((get(0,1,1,n,l,r-d)*st[0][d])%MOD[0]==get(0,1,1,n,l+d,r))&&
((get(1,1,1,n,l,r-d)*st[1][d])%MOD[1]==get(1,1,1,n,l+d,r))))puts("YES");else puts("NO");
}
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG1hdGguaD4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxzdGRpby5oPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8c2V0PgojaW5jbHVkZTxpb21hbmlwPgojZGVmaW5lIEYgZmlyc3QKI2RlZmluZSBTIHNlY29uZAojZGVmaW5lIFAgc3lzdGVtKCJQQVVTRSIpOwojZGVmaW5lIEggcmV0dXJuIDA7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBsb25nIGxvbmcgQT0xMDAwMDAwMDAwMDAwMDBMTCxOPTIyODIyODsKY29uc3QgbG9uZyBsb25nIG9zWzJdPXsxMSwxM307CmNvbnN0IGxvbmcgbG9uZyBNT0RbMl09ezEwMDAwMDAwMDcsMTA3MzY3NjI4N307CgpzdHJpbmcgYTsKbG9uZyBsb25nIHRbMl1bMl1bTio0XSxzdFsyXVtOXSxkcFsyXVtOXSx0eXBlLGwscixkLGksaixuLG1bMl07Cgpsb25nIGxvbmcgR2V0KGludCBrLGludCBsLGludCByKXsKICAgIGwtLSxyLS07CiAgICBpZighbClyZXR1cm4gZHBba11bcl07ZWxzZSByZXR1cm4gKChkcFtrXVtyXS1kcFtrXVtsLTFdKSVNT0Rba10rTU9EW2tdKSVNT0Rba107Cn0KCnZvaWQgcHVzaChpbnQgayxpbnQgdixpbnQgbCxpbnQgcil7CiAgICBpZighdFtrXVsxXVt2XSlyZXR1cm47CiAgICBpbnQgbWlkPShsK3IpLzI7CiAgICB0W2tdWzBdW3YqMl09KHRba11bMV1bdl0qR2V0KGssbCxtaWQpKSVNT0Rba107CiAgICB0W2tdWzBdW3YqMisxXT0odFtrXVsxXVt2XSpHZXQoayxtaWQrMSxyKSklTU9EW2tdOwogICAgdFtrXVsxXVt2KjJdPXRba11bMV1bdioyKzFdPXRba11bMV1bdl07CiAgICB0W2tdWzFdW3ZdPTA7Cn0KCnZvaWQgbW9kaShpbnQgayxpbnQgdixpbnQgbCxpbnQgcixpbnQgX2wsaW50IF9yLGxvbmcgbG9uZyBnKXsKICAgIGlmKF9sPl9yKXJldHVybjsKICAgIGlmKGw9PV9sICYmIHI9PV9yKXsKICAgICAgICB0W2tdWzBdW3ZdPShnKkdldChrLGwscikpJU1PRFtrXSx0W2tdWzFdW3ZdPWc7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG1pZD0obCtyKS8yOwogICAgcHVzaChrLHYsbCxyKTsKICAgIG1vZGkoayx2KjIsbCxtaWQsX2wsbWluKF9yLG1pZCksZyksbW9kaShrLHYqMisxLG1pZCsxLHIsbWF4KG1pZCsxLF9sKSxfcixnKTsKICAgIHRba11bMF1bdl09dFtrXVswXVt2KjJdK3Rba11bMF1bdioyKzFdOwp9Cgpsb25nIGxvbmcgZ2V0KGludCBrLGludCB2LGludCBsLGludCByLGludCBfbCxpbnQgX3IpewogICAgaWYoX2w+X3IpcmV0dXJuIDA7CiAgICBpZihsPT1fbCAmJiByPT1fcilyZXR1cm4gdFtrXVswXVt2XTsKICAgIHB1c2goayx2LGwscik7CiAgICBpbnQgbWlkPShsK3IpLzI7CiAgICByZXR1cm4gKGdldChrLHYqMixsLG1pZCxfbCxtaW4obWlkLF9yKSkrZ2V0KGssdioyKzEsbWlkKzEscixtYXgobWlkKzEsX2wpLF9yKSklTU9EW2tdOwp9CgppbnQgbWFpbigpewogICAgY2luPj5uPj5tWzBdPj5tWzFdOwogICAgY2luPj5hOwogICAgZm9yKGQ9MDtkPDI7ZCsrKXsKICAgICAgICBzdFtkXVswXT1kcFtkXVswXT0xOwogICAgICAgIGZvcihpPTE7aTxuO2krKylzdFtkXVtpXT1zdFtkXVtpLTFdKm9zW2RdLHN0W2RdW2ldJT1NT0RbZF0sZHBbZF1baV09ZHBbZF1baS0xXStzdFtkXVtpXSxkcFtkXVtpXSU9TU9EW2RdOwogICAgICAgIGZvcihpPTA7aTxuO2krKyltb2RpKGQsMSwxLG4saSsxLGkrMSxhW2ldLScwJysxKTsKICAgIH0KICAgIG1bMF0rPW1bMV07CiAgICB3aGlsZShtWzBdLS0pewogICAgICAgIHNjYW5mKCIlZCVkJWQlZCIsJnR5cGUsJmwsJnIsJmQpOwogICAgICAgIGlmKHR5cGU9PTEpewogICAgICAgICAgICBmb3IoaT0wO2k8MjtpKyspbW9kaShpLDEsMSxuLGwscixkKzEpOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBpZihsPT1yIHx8ICgoKGdldCgwLDEsMSxuLGwsci1kKSpzdFswXVtkXSklTU9EWzBdPT1nZXQoMCwxLDEsbixsK2QscikpJiYKICAgICAgICAgICAgICAgICgoZ2V0KDEsMSwxLG4sbCxyLWQpKnN0WzFdW2RdKSVNT0RbMV09PWdldCgxLDEsMSxuLGwrZCxyKSkpKXB1dHMoIllFUyIpO2Vsc2UgcHV0cygiTk8iKTsKICAgICAgICB9CiAgICB9Cn0=