#include <bits/stdc++.h>
using namespace std;
const int Maxn = 1 << 18;
const int Base = 1 << 16;
const int Mod = 1e9 + 9;
long long Pw[Maxn], Ps[Maxn], Seg[Maxn << 2], Lazy[Maxn << 2], n, q, m;
long long _mul(long long a, long long b) { return (a * b) % Mod; }
long long _sum(long long a, long long b) { return (a + b + Mod) % Mod; }
void Shift(int id, int b, int e) {
  if (!~Lazy[id]) return;
  Seg[(id << 1)] = _mul(Lazy[id], Ps[((b + e) >> 1) - b - 1]);
  Seg[((id << 1) | 1)] = _mul(Lazy[id], Ps[e - ((b + e) >> 1) - 1]);
  Lazy[(id << 1)] = Lazy[((id << 1) | 1)] = Lazy[id];
  Lazy[id] = -1;
}
void Change(int l, int r, int c, int id = 1, int b = 0, int e = n) {
  if (r <= b || e <= l) return;
  if (l <= b && e <= r) {
    Seg[id] = _mul(c, Ps[e - b - 1]);
    Lazy[id] = c;
    return;
  }
  Shift(id, b, e);
  Change(l, r, c, (id << 1), b, ((b + e) >> 1));
  Change(l, r, c, ((id << 1) | 1), ((b + e) >> 1), e);
  Seg[id] =
      _sum(_mul(Seg[(id << 1)], Pw[e - ((b + e) >> 1)]), Seg[((id << 1) | 1)]);
}
long long Get(int l, int r, int id = 1, int b = 0, int e = n) {
  if (r <= b || e <= l) return 0;
  if (l <= b && e <= r) return _mul(Seg[id], Pw[r - e]);
  Shift(id, b, e);
  long long L = Get(l, r, (id << 1), b, ((b + e) >> 1));
  long long R = Get(l, r, ((id << 1) | 1), ((b + e) >> 1), e);
  return _sum(L, R);
  if (!R) return L;
  return _sum(_mul(L, Pw[((b + e) >> 1) - l]), R);
}
int main() {
  fill(Lazy, Lazy + Maxn, -1);
  Pw[0] = Ps[0] = 1;
  for (int i = 1; i < Maxn; i++) {
    Pw[i] = _mul(Pw[i - 1], Base);
    Ps[i] = _sum(Ps[i - 1], Pw[i]);
  }
  cin >> n >> m >> q;
  q += m;
  string s;
  cin >> s;
  for (int i = 0; i < n; i++) Change(i, i + 1, s[i] - '0');
  while (q--) {
    long long t;
    cin >> t;
    if (t == 1) {
      long long l, r, c;
      cin >> l >> r >> c;
      l--;
      Change(l, r, c);
    } else {
      long long l, r, d;
      cin >> l >> r >> d;
      l--;
      if (d == r - l) {
        cout << "YES\n";
        continue;
      }
      cout << (Get(l, r - d) ^ Get(l + d, r) ? "NO\n" : "YES\n");
    }
  }
}
