#include <bits/stdc++.h>

using namespace std;

string J(const string& s)
{
    int lasti = s.size() - 1;
    return s[lasti] + s.substr(0, lasti);
}

string C(const string& s)
{
    return s.substr(1) + s[0];
}

string E(const string& s)
{
    int size = s.size();
    int hsize = size / 2;
    if(size&1) return s.substr(hsize+1) + s[hsize] + s.substr(0, hsize);
    else return s.substr(hsize) + s.substr(0, hsize);
}

string A(const string& s)
{
    return string(s.rbegin(), s.rend());
}

string P(const string& s)
{
    string r;
    for(basic_string<char>::const_iterator i=s.begin(); i!=s.end(); i++)
    {
        r.push_back(('0'<=*i && *i<='9') ? (*i - '0' + 9) % 10 + '0' : *i);
    }
    return r;
}

string M(const string& s)
{
    string r;
    for(basic_string<char>::const_iterator i=s.begin(); i!=s.end(); i++)
    {
        r.push_back(('0'<=*i && *i<='9') ? (*i - '0' + 1) % 10 + '0' : *i);
    }
    return r;
}



int main()
{
    string (*op[128])(const string&);
    op['J'] = J;
    op['C'] = C;
    op['E'] = E;
    op['A'] = A;
    op['P'] = P;
    op['M'] = M;

    int n;
    cin >> n;
    while(n--)
    {
        string cmd, text;
        cin >> cmd >> text;
        for(basic_string<char>::reverse_iterator i=cmd.rbegin(); i!=cmd.rend(); i++)
        {
            text = op[*i](text);
        }
        cout << text << endl;
    }
}