/* وَقُلْ رَبِّ زِدْنِي عِلْمًاً */
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <iomanip>
#include <stack>
#include <set>
#include <queue>
#include <deque>
#include <vector>
#include <fstream>
#include <cctype>
#include <utility>
#define ll long long
#define ld long double
#define sz(v) ((int)(v).size())
#define all(v) ((v).begin()),((v).end())
#define setp(n) cout << fixed << setprecision(n)
#define O_o ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define fi(nn) for(ll i = 0; i < (nn); i++)
#define fj(nn) for(ll j = 0; j < (nn); j++)
#define fl(nn) for (ll i = nn - 1; i >= 0; i--)
#define ffi(nn,mm) for(ll i = 0; i < (nn); i++)for(ll j = 0; j < (mm); j++)
#define wt ll t;cin>>t;while(t--)
#define null NULL
using namespace std;
int main()
{
O_o
ll n, q;
string s;
cin >> n >> q >> s;
while (q--) {
string w;
cin >> w;
if (w == "pop_back") {
s.pop_back();
}
else if (w == "front") {
cout << s.front();
cout << '\n';
}
else if (w == "back") {
cout << s.back();
cout << '\n';
}
else if (w == "sort") {
ll x, y;
cin >> x >> y;
sort(s.begin() + min(x, y) - 1, s.begin() + max(x, y));
}
else if (w == "reverse") {
ll x, y;
cin >> x >> y;
reverse(s.begin() + min(x, y) - 1, s.begin() + max(x, y));
}
else if (w == "print") {
ll x, y;
cin >> x;
cout << s[x - 1];
cout << '\n';
}
else if (w == "substr") {
ll x, y;
cin >> x >> y;
cout << s.substr(x - 1, y - x + 1);
cout << '\n';
}
else if (w == "push_back") {
char x;
cin >> x;
s.push_back(x);
}
}
return 0;
}
Lyog2YjZjtmC2Y/ZhNmSINix2Y7YqNmR2ZAg2LLZkNiv2ZLZhtmQ2Yog2LnZkNmE2ZLZhdmL2KfZiyAqLwojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8ZGVxdWU+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxmc3RyZWFtPgojaW5jbHVkZSA8Y2N0eXBlPgojaW5jbHVkZSA8dXRpbGl0eT4KCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBzeih2KSAgICgoaW50KSh2KS5zaXplKCkpCiNkZWZpbmUgYWxsKHYpICAgICgodikuYmVnaW4oKSksKCh2KS5lbmQoKSkKI2RlZmluZSBzZXRwKG4pIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKG4pCiNkZWZpbmUgT19vIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSB5ZXMgY291dCA8PCAiWUVTXG4iCiNkZWZpbmUgbm8gY291dCA8PCAiTk9cbiIKI2RlZmluZSBmaShubikgZm9yKGxsIGkgPSAwOyBpIDwgKG5uKTsgaSsrKQojZGVmaW5lIGZqKG5uKSBmb3IobGwgaiA9IDA7IGogPCAobm4pOyBqKyspCiNkZWZpbmUgZmwobm4pIGZvciAobGwgaSA9IG5uIC0gMTsgaSA+PSAwOyBpLS0pCiNkZWZpbmUgZmZpKG5uLG1tKSBmb3IobGwgaSA9IDA7IGkgPCAobm4pOyBpKyspZm9yKGxsIGogPSAwOyBqIDwgKG1tKTsgaisrKQojZGVmaW5lIHd0IGxsIHQ7Y2luPj50O3doaWxlKHQtLSkKI2RlZmluZSBudWxsIE5VTEwKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCkKewogICAgT19vCiAgICAgICAgbGwgbiwgcTsKICAgIHN0cmluZyBzOwogICAgY2luID4+IG4gPj4gcSA+PiBzOwogICAgd2hpbGUgKHEtLSkgewogICAgICAgIHN0cmluZyB3OwogICAgICAgIGNpbiA+PiB3OwogICAgICAgIGlmICh3ID09ICJwb3BfYmFjayIpIHsKICAgICAgICAgICAgcy5wb3BfYmFjaygpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh3ID09ICJmcm9udCIpIHsKICAgICAgICAgICAgY291dCA8PCBzLmZyb250KCk7CiAgICAgICAgICAgIGNvdXQgPDwgJ1xuJzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAodyA9PSAiYmFjayIpIHsKICAgICAgICAgICAgY291dCA8PCBzLmJhY2soKTsKICAgICAgICAgICAgY291dCA8PCAnXG4nOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh3ID09ICJzb3J0IikgewogICAgICAgICAgICBsbCB4LCB5OwogICAgICAgICAgICBjaW4gPj4geCA+PiB5OwogICAgICAgICAgICBzb3J0KHMuYmVnaW4oKSArIG1pbih4LCB5KSAtIDEsIHMuYmVnaW4oKSArIG1heCh4LCB5KSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHcgPT0gInJldmVyc2UiKSB7CiAgICAgICAgICAgIGxsIHgsIHk7CiAgICAgICAgICAgIGNpbiA+PiB4ID4+IHk7CiAgICAgICAgICAgIHJldmVyc2Uocy5iZWdpbigpICsgbWluKHgsIHkpIC0gMSwgcy5iZWdpbigpICsgbWF4KHgsIHkpKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAodyA9PSAicHJpbnQiKSB7CiAgICAgICAgICAgIGxsIHgsIHk7CiAgICAgICAgICAgIGNpbiA+PiB4OwogICAgICAgICAgICBjb3V0IDw8IHNbeCAtIDFdOwogICAgICAgICAgICBjb3V0IDw8ICdcbic7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHcgPT0gInN1YnN0ciIpIHsKICAgICAgICAgICAgbGwgeCwgeTsKICAgICAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICAgICAgY291dCA8PCBzLnN1YnN0cih4IC0gMSwgeSAtIHggKyAxKTsKICAgICAgICAgICAgY291dCA8PCAnXG4nOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh3ID09ICJwdXNoX2JhY2siKSB7CiAgICAgICAgICAgIGNoYXIgeDsKICAgICAgICAgICAgY2luID4+IHg7CiAgICAgICAgICAgIHMucHVzaF9iYWNrKHgpOwogICAgICAgIH0KCiAgICB9CiAgICByZXR1cm4gMDsKfQ==