#include <bits/stdc++.h>

using namespace std;

#define rep(i, n) REP((i), 0, (n))
#define REP(i, a, n) for(int i=(a); i<(n); i++)

void j_inv(string& s) {
    s = s.back() + s.substr(0, s.size()-1);
}

void c_inv(string& s) {
    s = s.substr(1, s.size()-1) + s[0];
}

void e_inv(string& s) {
    if(s.size()%2 == 0)
        s = s.substr(s.size()/2, s.size()/2) + s.substr(0, s.size()/2);
    else
        s = s.substr(s.size()/2+1, s.size()/2) + s[s.size()/2] + s.substr(0, s.size()/2);
}

void a_inv(string& s) {
    reverse(s.begin(), s.end());
}

void p_inv(string& s) {
    rep(i, s.size())
        if(isdigit(s[i])) s[i] = (s[i]=='0'? '9':s[i]-1);
}

void m_inv(string& s) {
    rep(i, s.size())
        if(isdigit(s[i])) s[i] = (s[i]=='9'? '0':s[i]+1); 
}

int main() {
    int n; cin >> n;
    rep(_, n) {
        string m; cin >> m;
        string s; cin >> s;
        for(int j=m.size()-1; j>=0; j--) {
            switch(m[j]) {
                case 'J': j_inv(s); break;
                case 'C': c_inv(s); break;
                case 'E': e_inv(s); break;
                case 'A': a_inv(s); break;
                case 'P': p_inv(s); break;
                case 'M': m_inv(s); break;
            }
        }
        cout << s << endl;
    }
}

