Рик прекрасно знает, что Морти нельзя доверять портальную пушку, но в последнее время Морти так надоел ему просьбами подарить ему собственную портальную пушку, что Рик сдался и сделал ему мини-версию.
Однако, чтобы Морти при этом как-то развивался (или просто чтобы ему было сложнее ее использовать), Рик сделал ее устройство достаточно запутанным. Всего на портальной пушке Морти есть n параметров, каждый из которых может принимать значения от 'a' до 'z'. Обозначим параметр под номером i за p_i.
За одно действие Морти может:
a' до 'z';a' до 'z' и заменить значение у всех параметров, текущее значение которых равно c_1, на c_2;{r_1−l_1=r_2−l_2 p_l_1+i=p_l_2+iдля всех 0⩽i⩽r_1−l_1.
Поскольку Морти не шибко умный, ему сложно быстро проверять наборы параметров на равенство, а случайно сломать портальную пушку не хотелось бы. Помогите ему для каждого действия третьего типа понять, может ли он создать порталы в желаемых локациях, или нет.
В первой строке ввода дана строка p длины n, состоящая из маленьких латинских букв --- изначальные значения параметров пушки (1⩽n⩽2⋅105).
В следующей строке дано единственное целое число q --- количество действий, которые совершает Морти (1⩽q⩽2⋅105).
В следующих q строках перечислены описания действий:
1 i c>> --- присвоить i-му параметру значение c (1⩽i⩽n; ’‘a‘’⩽c⩽’‘z‘’);2 c_1 c_2>> --- заменить все значения всех параметров, равных c_1, на c_2 (’‘a‘’⩽c_1,c_2⩽’‘z‘’);3 l_1 r_1 l_2 r_2>> --- проверить возможность создания порталов в локациях (l_1,r_1) и (l_2,r_2) (1⩽l_1,r_1,l_2,r_2⩽n; l_1⩽r_1; l_2⩽r_2).На каждое действие третьего типа выведите в отдельной строке <<YES>> (без кавычек), если Морти может его выполнить, и <<NO>> иначе.