import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String s = scanner.next(); // 读取输入的字符串
int n = scanner.nextInt(); // 读取操作次数
for (int i = 0; i < n; i++) {
String instruction = scanner.next(); // 读取操作指令
char[] array = instruction.toCharArray(); // 将指令转换为字符数组
int start = array[1] - '0'; // 提取起始位置
int len = array[2] - '0'; // 提取长度
if (array[0] == '1') { // 如果操作类型为1
String replace = instruction.substring(3); // 提取替换的字符串
String ss = s.substring(0, start) + replace + s.substring(start + len); // 替换操作
s = ss; // 更新字符串 s
System.out.println(ss); // 输出结果
} else { // 如果操作类型不为1
String replace = new StringBuilder(s.substring(start, start + len)).reverse().toString(); // 获取子串并反转
String ss = s.substring(0, start) + replace + s.substring(start + len); // 替换操作
s = ss; // 更新字符串 s
System.out.println(ss); // 输出结果
}
}
}
}
}