#include<iostream>
#include<math.h>
#include<iomanip>
#include <string>
#include<algorithm>
using namespace std;
void fast()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int main()
{
fast();
int size;
int numOfQ;
cin >> size >> numOfQ;
string S;
cin >> S;
for (int i = 0;i < numOfQ;i++) {
string query;
cin >> query;
if (query == "pop_back") {
S.pop_back();
}
else if (query == "front") {
cout << S.front() << endl;
}
else if (query == "back") {
cout << S.back() << endl;
}
else if (query == "sort") {
int l, r;
cin >> l >> r;
sort(S.begin() + l - 1, S.begin() + r);
}
else if (query == "reverse") {
int l, r;
cin >> l >> r;
reverse(S.begin() + l - 1, S.begin() + r);
}
else if (query == "print") {
int pos;
cin >> pos;
cout << S[pos - 1] << endl;
}
else if (query == "substr") {
int l, r;
cin >> l >> r;
cout << S.substr(l - 1, r - l + 1) << endl;
}
else if (query == "push_back") {
char x;
cin >> x;
S.push_back(x);
}
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG1hdGguaD4KI2luY2x1ZGU8aW9tYW5pcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGU8YWxnb3JpdGhtPgogCiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp2b2lkIGZhc3QoKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwp9CmludCBtYWluKCkKewogICAgZmFzdCgpOwogCiAgICBpbnQgc2l6ZTsKICAgIGludCBudW1PZlE7CiAgICBjaW4gPj4gc2l6ZSA+PiBudW1PZlE7CiAKICAgIHN0cmluZyBTOwogICAgY2luID4+IFM7CiAKICAgICAgICBmb3IgKGludCBpID0gMDtpIDwgbnVtT2ZRO2krKykgewogICAgICAgICAgICBzdHJpbmcgcXVlcnk7CiAgICAgICAgICAgIGNpbiA+PiBxdWVyeTsKIAogICAgICAgICAgICBpZiAocXVlcnkgPT0gInBvcF9iYWNrIikgewogICAgICAgICAgICAgICAgUy5wb3BfYmFjaygpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKHF1ZXJ5ID09ICJmcm9udCIpIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgUy5mcm9udCgpIDw8IGVuZGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAocXVlcnkgPT0gImJhY2siKSB7CiAgICAgICAgICAgICAgICBjb3V0IDw8IFMuYmFjaygpIDw8IGVuZGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAocXVlcnkgPT0gInNvcnQiKSB7CiAgICAgICAgICAgICAgICBpbnQgbCwgcjsKICAgICAgICAgICAgICAgIGNpbiA+PiBsID4+IHI7CiAgICAgICAgICAgICAgICBzb3J0KFMuYmVnaW4oKSArIGwgLSAxLCBTLmJlZ2luKCkgKyByKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChxdWVyeSA9PSAicmV2ZXJzZSIpIHsKICAgICAgICAgICAgICAgIGludCBsLCByOwogICAgICAgICAgICAgICAgY2luID4+IGwgPj4gcjsKICAgICAgICAgICAgICAgIHJldmVyc2UoUy5iZWdpbigpICsgbCAtIDEsIFMuYmVnaW4oKSArIHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKHF1ZXJ5ID09ICJwcmludCIpIHsKICAgICAgICAgICAgICAgIGludCBwb3M7CiAgICAgICAgICAgICAgICBjaW4gPj4gcG9zOwogICAgICAgICAgICAgICAgY291dCA8PCBTW3BvcyAtIDFdIDw8IGVuZGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAocXVlcnkgPT0gInN1YnN0ciIpIHsKICAgICAgICAgICAgICAgIGludCBsLCByOwogICAgICAgICAgICAgICAgY2luID4+IGwgPj4gcjsKICAgICAgICAgICAgICAgIGNvdXQgPDwgUy5zdWJzdHIobCAtIDEsIHIgLSBsICsgMSkgPDwgZW5kbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChxdWVyeSA9PSAicHVzaF9iYWNrIikgewogICAgICAgICAgICAgICAgY2hhciB4OwogICAgICAgICAgICAgICAgY2luID4+IHg7CiAgICAgICAgICAgICAgICBTLnB1c2hfYmFjayh4KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIAogCiAgICByZXR1cm4gMDsKfQ==