#include <iostream>
#include <string>
#include <cmath>
#include <algorithm>
#include <set>
using namespace std;
int main()
{
string s;
int N, Q;
cin >> N >> Q;
cin >> s;
string p;
for (int i = 0; i < Q; i++) {
cin >> p;
if (p == "substr") {
int start, end;
cin >> start >> end;
cout << s.substr(start-1, end-start+1) << endl;
}
else if (p == "sort") {
int start, end;
cin >> start >> end;
// Make sure start <= end
if (start <= end) {
sort(s.begin() + start - 1, s.begin() + end);
}
}
else if (p == "pop_back") {
s.pop_back();
}
else if (p == "back") {
cout << s.back() << endl;
}
else if (p == "front") {
cout << s.front() << endl;
}
else if (p == "push_back") {
char d;
cin >> d;
s.push_back(d);
}
else if (p == "reverse") {
int start, end;
cin >> start >> end;
if (start <= end) {
reverse(s.begin() + start - 1, s.begin() + end);
}
}
else if (p == "print") {
int bero;
cin >> bero;
cout << s[bero - 1] << endl;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxzZXQ+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IG1haW4oKQp7CiAgICBzdHJpbmcgczsKICAgIGludCBOLCBROwogICAgY2luID4+IE4gPj4gUTsKICAgIGNpbiA+PiBzOwogICAgc3RyaW5nIHA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IFE7IGkrKykgewogICAgICAgIGNpbiA+PiBwOwogICAgICAgIGlmIChwID09ICJzdWJzdHIiKSB7CiAgICAgICAgICAgIGludCBzdGFydCwgZW5kOwogICAgICAgICAgICBjaW4gPj4gc3RhcnQgPj4gZW5kOwogICAgICAgICAgICBjb3V0IDw8IHMuc3Vic3RyKHN0YXJ0LTEsIGVuZC1zdGFydCsxKSA8PCBlbmRsOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChwID09ICJzb3J0IikgewogICAgICAgICAgICBpbnQgc3RhcnQsIGVuZDsKICAgICAgICAgICAgY2luID4+IHN0YXJ0ID4+IGVuZDsKICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHN0YXJ0IDw9IGVuZAogICAgICAgICAgICBpZiAoc3RhcnQgPD0gZW5kKSB7CiAgICAgICAgICAgICAgICBzb3J0KHMuYmVnaW4oKSArIHN0YXJ0IC0gMSwgcy5iZWdpbigpICsgZW5kKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChwID09ICJwb3BfYmFjayIpIHsKICAgICAgICAgICAgcy5wb3BfYmFjaygpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChwID09ICJiYWNrIikgewogICAgICAgICAgICBjb3V0IDw8IHMuYmFjaygpIDw8IGVuZGw7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHAgPT0gImZyb250IikgewogICAgICAgICAgICBjb3V0IDw8IHMuZnJvbnQoKSA8PCBlbmRsOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChwID09ICJwdXNoX2JhY2siKSB7CiAgICAgICAgICAgIGNoYXIgZDsKICAgICAgICAgICAgY2luID4+IGQ7CiAgICAgICAgICAgIHMucHVzaF9iYWNrKGQpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChwID09ICJyZXZlcnNlIikgewogICAgICAgICAgICBpbnQgc3RhcnQsIGVuZDsKICAgICAgICAgICAgY2luID4+IHN0YXJ0ID4+IGVuZDsKICAgICAgICAgICAgaWYgKHN0YXJ0IDw9IGVuZCkgewogICAgICAgICAgICAgICAgcmV2ZXJzZShzLmJlZ2luKCkgKyBzdGFydCAtIDEsIHMuYmVnaW4oKSArIGVuZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAocCA9PSAicHJpbnQiKSB7CiAgICAgICAgICAgIGludCBiZXJvOwogICAgICAgICAgICBjaW4gPj4gYmVybzsKICAgICAgICAgICAgY291dCA8PCBzW2Jlcm8gLSAxXSA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KfQ==