#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
// 翻转函数
void reverse(string &str, int i, int len){
for(int j = i; j <= (2 * i + len - 1) / 2; j++){
char temp;
temp = str[j];
str[j] = str[2 * i + len - 1 - j];
str[2 * i + len - 1 - j] = temp;
}
cout << str;
}
// 替换函数
void replace(string &str, int i, int len, string str_rep){
int count = 0;
string str_post = str.substr(i + len);
string str_pre = str.substr(0, i);
str = str_pre + str_rep + str_post;
cout << str;
}
int main(){
string str;
int n;
cin >> str >> n; // 输入字符串bac 和 命令的条数n
for(int i = 0; i < n; i++){
string order; // order变量存放命令
cin >> order; // 输入命令003 、 112as
if(order[0] == '0'){ // 翻转命令
int i, len;
reverse(str, order[1] - '0', order[2] - '0');
}else{ // 替换命令
string str_rep = order.substr(3); // str_rep存放用来替换的字符串内容
replace(str, order[1] - '0', order[2] - '0', str_rep);
}
cout << endl;
}
return 0;
}