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); // 输出结果
                }
            }
        }
    }
}