Возвращение к домашней работе

아직 제출이 없습니다시간 제한10초메모리 제한1024 MB

문제

Человек-паук только что вернулся домой после очередного задания. Он ужасно хочет спать, но у него еще есть невыполненная домашняя работа по математике на завтра. Вот, в чем она состоит:

Вам дается строка s_0s\_0 --- начальное значение строки ss, состоящей из символов 0, 1, 2 и 3. Далее, вам нужно обрабатывать запросы четырех типов:

  1. Вам дается целое число p_ip\_i и строка w_iw\_i. Вы должны вставить строку w_iw\_i в текущую строку ss перед символом на позиции p_ip\_i, если pos_i<spos\_i < |s| и после всех символов, если p_i=sp\_i = |s|.
  2. Вам даются два целых числа p_ip\_i и l_il\_i. Вы должны удалить из текущей строки ss подстроку длины l_il\_i, начинающуюся с символа на позиции p_ip\_i.
  3. Вам даются два целых числа p_ip\_i и l_il\_i. Вы должны развернуть в обратном порядке подстроку строки ss, начинающуюся с символа на позиции p_ip\_i, длины l_il\_i.
  4. Вам даются три целых числа p_ip\_i, l_il\_i и k_ik\_i. Вы должны k_ik\_i раз продублировать подстроку, начинающуюся с символа на позиции p_ip\_i, имеющую длину l_il\_i, сразу после этой подстроки. Иными словами, вы должны сразу после этой подстроки дописать эту подстроку k_ik\_i раз.

Символы в строке нумеруются с 00. Смотрите пояснение к примеру для лучшего понимания.

В каждый момент времени вас интересует длина наибольшей неубывающей подпоследовательности строки ss. Наибольшей неубывающей подпоследовательность называется максимальное по размеру множество чисел a_1<a_2<<a_m1<a_ma\_1 < a\_2 < \dots < a\_{m - 1} < a\_m, для которых верно, что s_a_1s_a_2s_a_m1s_a_ms\_{a\_1} \le s\_{a\_2} \le \dots \le s\_{a\_{m - 1}} \le s\_{a\_m}.

입력

В первой строке дана непустая строка s_0s\_0, состоящая из символов 0\dots3 --- начальное значение строки ss (s_0100,000|s\_0| \le 100\\,000). В следующей строке дано целое число qq --- количество запросов (0q15,0000 \le q \le 15\\,000). В следующих qq строках дано описание запросов. Если строка начинается с 11, то это запрос первого типа, далее дано целое число p_ip\_i и непустая строка w_iw\_i, состоящая из символов 0\dots3 (0p_is0 \le p\_i \le |s|, 1w_i100,0001 \le |w\_i| \le 100\\,000). Если строка начинается с 22, то это запрос второго типа, далее даны два целых числа p_ip\_i и l_il\_i (1l_i<s1 \le l\_i < |s|, 0p_isl_i0 \le p\_i \le |s| - l\_i). Если строка начинается с 33, то это запрос третьего типа, далее даны два целых числа p_ip\_i и l_il\_i (1l_i<s1 \le l\_i < |s|, 0p_isl_i0 \le p\_i \le |s| - l\_i). Если строка начинается с 44, то это запрос четвертого типа, далее даны три целых числа p_ip\_i, l_il\_i и k_ik\_i (1l_i<s1 \le l\_i < |s|, 0p_isl_i0 \le p\_i \le |s| - l\_i, 1k_i10151 \le k\_i \le 10^{15}).

Гарантируется, что в любой момент времени строка ss не пуста, и ее длина не превышает 101510^{15}. Гарантируется, что сумма длин всех w_iw\_i не превышает 100,000100\\,000.

출력

Выведите q+1q + 1 целое число --- длину наибольшей неубывающей подпоследовательности ss до всех запросов и после каждого из запросов.

힌트

Вот значения ss. Выделены символы, образующие одну из возможных наибольших неубывающих подпоследовательностей.

0103020

010300120

000120

002100

002002002100