#include <bits/stdc++.h>
#define ull unsigned long long
#define ll long long
#define el endl
#define nl '\n'
using namespace std;
void input()
{
    if (fopen("in.txt", "r"))
    {
        freopen("in.txt", "r", stdin);
        freopen("out.txt", "w", stdout);
    }
}

int a, b, c;

int trip(int a, int b, int c)
{
    return a * b * c;
}
int main()
{
Fast:
    input();
    //---------------------------------" " UPSOLVE---------------------------------------------------------------

    int n, q;
    cin >> n >> q;
    string s;
    cin >> s;

    while (q--)
    {
        string t;
        cin >> t;

        if (t == "pop_back")
            s.pop_back();

        else if (t == "front")
            cout << s.front() << el;

        else if (t == "back")
            cout << s.back() << el;

        else if (t == "sort")
        {
            int l, r;
            cin >> l >> r;
            l = min(l, r);
           
            l--;
            r--;
            sort(s.begin() + l, s.begin() + r + 1);
        }
        else if (t == "reverse")
        {
            int l, r;
            cin >> l >> r;
            l = min(l, r);
            
            l--;
            r--;
            reverse(s.begin() + l, s.begin() + r + 1);
        }
        else if (t == "print")
        {
            int pos;
            cin >> pos;
            pos--;
            cout << s[pos] << el;
        }
        else if (t == "substr")
        {
            int l, r;
            cin >> l >> r;
            l = min(l, r);
             
            l--;
            r--;
            cout << s.substr(l, r - l + 1) << el;
        }
        else if (t == "push_back")
        {
            char x;
            cin >> x;
            s.push_back(x);
        }
    }

    return 0;
}
