11366. Рядок
Степан має рядок \(S\), що складається з малих англійських літер. Починаючи з цього рядка, він створить новий рядок у процедурі, наведеній нижче.
Процедура складається з \(Q\) операцій. В операції \(i\) (\(1 \leq i \leq Q\)) надається ціле число \(T_i\), що означає наступне:
Якщо \(T_i = 1\): перевернути рядок \(S\).
Якщо \(T_i = 2\): додатково надається ціле число \(F_i\) і маленька англійська літера \(C_i\).
Якщо \(F_i = 1\): додайте \(C_i\) на початок рядка \(S\).
Якщо \(F_i = 2\): додайте \(C_i\) до кінця рядка \(S\).
Допоможіть Степану знайти останній рядок, який є результатом описаної процедури.
Формат вхідних даних
Перший рядок містить \(S\) (\(1 \le |S| \le 10^5\)), який містить символи проміжку ['a'..'z'].
Другий рядок містить ціле число \(Q\) (\(1 \le Q \le 2 \times 10^5\))
Наступні \(Q\) рядків містять запити: 1 або 2 \(F_i\) \(C_i\) (\(F_i = 1, 2\) \(C_i\) in ['a'..'z'])
Формат вихідних даних
У вихідний потік виведіть шуканий рядок.
Примітка
До прикладу 1:
Буде \(Q = 4\) операції. Спочатку \(S\) - це \(a\).
Операція 1: Додайте \(р\) на початку \(S\). \(S\) стає \(a\).
Операція 2: Реверс \(S\). \(S\) стає \(ap\).
Операція 3: Додайте \(c\) в кінці \(S\). \(S\) стає \(apc\).
Операція 4: Реверс \(S\). \(S\) стає \(cpa\).
Таким чином, отриманий рядок є \(cpa\).
Приклад вхідних даних
a
4
2 1 p
1
2 2 c
1
Приклад вихідних даних
cpa
Приклад вхідних даних
a
6
2 2 a
2 1 b
1
2 2 c
1
1
Приклад вихідних даних
aabc
Приклад вхідних даних
y
1
2 1 x
Приклад вихідних даних
xy
Коментарі