Олимпиадный тренинг

Задача . B. Запросы на строке


Вам даны строка s и m запросов. Каждый запрос задаётся парой индексов li, ri и целым числом ki, и означает, что подстроку s[li... ri] нужно ki раз циклически сдвинуть вправо. Запросы нужно обрабатывать последовательно, друг за другом.

Циклический сдвиг вправо обозначает перемещение последнего символа на место первого и сдвиг всех остальных символов направо на одну позицию.

Например, если исходная строка s равна abacaba, то в случае запроса l1 = 3, r1 = 6, k1 = 1 получится строка abbacaa, если же после этого обработать запрос l2 = 1, r2 = 4, k2 = 2, то в результате получится строка baabcaa.

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

В первой строке находится строка s (1 ≤ |s| ≤ 10 000) — исходная строка, состоящая из строчных букв английского алфавита. Запись |s| обозначает длину строки s.

Во второй строке находится число m (1 ≤ m ≤ 300) — количество запросов циклического сдвига.

В i-й из следующих m строк находится тройка чисел li, ri и ki (1 ≤ li ≤ ri ≤ |s|, 1 ≤ ki ≤ 1 000 000) — параметры i-го запроса.

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

Выведите строку, которая получится после обработки всех m запросов.

Примечание

Пример разобран в условии задачи.


Примеры
Входные данныеВыходные данные
1 abacaba
2
3 6 1
1 4 2
baabcaa

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя