eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Перетворювач рядків

Перетворювач рядків

\textit{Перетворювач рядків} - спеціальна програма, яка отримує на вхід рядок і видає на вихід також рядок. У процесі опрацювання до деяких підрядків заданого рядка застосовуються операції двох типів: \begin{itemize} \item розворот (позначається символом \textbf{R}) - з рядка \textbf{S_1S_2...S_\{n-1\}S_n} отримується рядок \textbf{S_nS_\{n-1\}...S_2S_1}; \item сортування (позначається символом \textbf{S}) - з рядка \textbf{S_1S_2...S_\{n-1\}S_n} отримується рядок, який містить ті ж символи, але відсортовані у порядку неспадання їх номерів по алфавіту. Наприклад, з рядка \textbf{hello} отримається рядок \textbf{ehllo}. \end{itemize} Задано рядок і послідовність операцій над деяки його підрядками. Необхідно визначити результат застосування цих операцій. \InputFile Перший рядок вхідного файлу містить заданий рядок. Він не порожінй, складається лише з рядкових літер латинського алфавіту. Його довжина \textbf{m} не перевищує \textbf{200} символів. Другий рядок вхідного файлу містить кількість операцій \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{200}). Кожен з насиупних \textbf{n} рядків містить опис однієї операції. Опис операції має формат \textbf{OP L R}, де \textbf{OP} - символ, що позначає операцію, \textbf{L} - позиція першого символу підрядка, до якого застосовується операція, \textbf{R} - позиція його останнього символу (\textbf{1} ≤ \textbf{L} ≤ \textbf{R} ≤ \textbf{m}). Якщо до застосування операції опрацьовуваний рядок мав вид \textbf{S_1S_2...S_m}, то після застосування операції він буде мати вид \textbf{S_1...S_\{L-1\}OP(S_L...S_R)S_\{R+1\}...S_m}, де \textbf{OP(S_L...S_R)} - результат застосування описаної операції до рядка \textbf{S_L...S_R}. \OutputFile У вихідний файл виведіть результат застосування до заданого рядка усіх перерахованих у вхідному файлі опреацій.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
helloworld
2
S 1 5
R 6 10
Вихідні дані #1
ehllodlrow