E. Кефа и часы
ограничение по времени на тест
1.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Как-то попугай Кефа шел по улице, возвращаясь домой из ресторана, и увидел в кустах что-то блестящее. Подойдя поближе он понял, что это часы. Он решил отнести их в ломбард, чтобы на этом заработать.

Там продавец сообщил ему, что на каждых часах есть серийный номер, представляющий собой строку из цифр от 0 до 9, и чем больше этот номер проходит проверок на подлинность, тем дороже часы. Проверка задаётся тремя целыми положительными числами l, r и d. Часы проходят проверку, если подстрока серийного номера с l по r имеет период d. Иногда продавец отвлекается, и Кефа изменяет в какой-то подстроке серийного номера все цифры на c, чтобы попытаться максимизировать прибыль с часов.

У продавца и так много дел, а тут еще и Кефа мешает, поэтому он поручил вам написать программу для определения подлинности часов.

Напомним, что число x называется периодом строки s (1 ≤ x ≤ |s|), если si  =  si + x для всех i от 1 до |s|  -  x.

Входные данные

Первая строка ввода содержит три целых положительных числа n, m и k (1 ≤ n ≤ 105, 1 ≤ m + k ≤ 105) — длина серийного номера, количество изменений номера, произведенных Кефой, и количество проверок на подлинность.

Вторая строка содержит серийный номер, состоящий из n цифр.

Далее следует m + k строк, содержащих проверки либо изменения.

Изменения задаются, как 1 l r с (1 ≤ l ≤ r ≤ n, 0 ≤ c ≤ 9). Это означает, что Кефа изменил все цифры с l-й по r-ю на c.

Проверки задаются, как 2 l r d (1 ≤ l ≤ r ≤ n, 1 ≤ d ≤ r - l + 1).

Выходные данные

Для каждой проверки на отдельной строке выведите «YES», если часы прошли её, иначе выведите «NO».

Примеры
Входные данные
3 1 2
112
2 2 3 1
1 1 3 8
2 1 2 1
Выходные данные
NO
YES
Входные данные
6 2 3
334934
2 2 5 2
1 4 4 3
2 1 6 3
1 2 3 8
2 3 6 1
Выходные данные
NO
YES
NO
Примечание

В первом тесте из условия будет произведено две проверки. В первой подстрока "12" проверяется на наличие периода 1, поэтому ответ — «NO». Во второй подстрока "88", проверяется на наличие периода 1, и у неё этот период есть, поэтому ответ — «YES».

Во втором тесте из условия будет произведено три проверки. В первой рассматривается подстрока "3493", у которой нет периода 2. Перед второй проверкой строка приобретает вид "334334", поэтому на него ответ «YES». И наконец, в третьей проверке рассматривается подстрока "8334", у которой нет периода 1.