子串的循环挪动

​ 给出一个字符串 ss,你需要执行 mm 个任务。每个任务给出两个下标 li,ril_i, r_i 和一个整数 kik_i(字符串的下标从 11 开始),表示你需要循环挪动 ss 的子串 s[li...ri] kis[l_i...r_i]\ k_i 次。请从前到后依次执行给出的每个任务。

​ 字符串的循环挪动操作:将最后一个字符移到第一个字符的位置,并且将其他所有字符向右移一个位置。

​ 比如:如果字符串 ssabacaba,一个任务为 l1=3,r1=6,k1=1l_1=3,r_1=6,k_1=1,那么答案为 abbacaa。接下来一个任务为 l2=1,r2=4,k2=2l_2=1,r_2=4,k_2=2,那么我们会得到 baabcaa

输入格式

​ 第一行一个字符串 ss,该字符串只包含小写英文字符。

​ 第二行一个整数 mm,表示任务个数。

​ 接下来 mm 行每行有三个整数 li,ril_i,r_ikik_i

输出格式

​ 输出执行了 mm 个任务后的最终的字符串 ss

样例输入

abacaba
2
3 6 1
1 4 2

样例输出

baabcaa

数据规模

​ 对于所有数据保证,1s100001\leq |s| \leq 10000s|s| 表示字符串 ss 的长度),1m3001\leq m\leq 3001liris1\leq l_i\leq r_i\leq |s|1ki10000001\leq k_i \leq 1000000