#include<bits/stdc++.h>
using namespace std;
int main() {
int q;
string s;
cin >> q >> s;
getchar();
getchar();
vector<string>vec(q);
string temp;
int record,start,size,pos;
for (int i = 0; i < q; i++) getline(cin, vec[i]);
for (int i = 0; i < q; i++) {
if (vec[i][0] == '1') {
for (int j = 2; j < vec[i].size(); j++) s += vec[i][j];
cout << s << endl;
}
else if (vec[i][0] == '2') {
temp.clear();
for (int j = 2; j < vec[i].size() && isdigit(vec[i][j]); j++) { temp += vec[i][j]; record = j; }
start = stoi(temp);
temp.clear();
for (int j = record + 2; j < vec[i].size(); j++) temp += vec[i][j];
size = stoi(temp);
s = s.substr(start, size);
cout << s << endl;
}
else if (vec[i][0] == '3') {
temp.clear();
for (int j = 2; j < vec[i].size() && isdigit(vec[i][j]); j++) { temp += vec[i][j]; record = j; }
start = stoi(temp);
temp.clear();
for (int j = record + 2; j < vec[i].size(); j++) temp += vec[i][j];
s.insert(start, temp);
cout << s << endl;
}
else{
temp.clear();
for (int j = 2; j < vec[i].size(); j++) temp += vec[i][j];
pos = s.find(temp);
if (pos < s.size()) cout << pos << endl;
else cout << -1 << endl;
}
}
return 0;
}