#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main(){
    int n;
    cin >> n;

    for(int i=0; i<n; i++){
        string order, m;
        cin >> order >> m;
        int len = m.length();
        for(int j=order.length()-1; j>=0; j--){
            switch(order[j]){
            case 'J':
                m = m.substr(len-1,1) + m.substr(0,len-1);
                break;
            case 'C':
                m = m.substr(1, len-1) + m.substr(0,1);
                break;
            case 'E':
                if(len%2==0){
                    m = m.substr((len+1)/2, len/2)
                        + m.substr(0, len/2);
                }else{
                    m = m.substr((len+2)/2, (len-1)/2)
                        + m.substr(len/2, 1)
                        + m.substr(0, (len-1)/2);
                }
                break;
            case 'A':
                reverse(m.begin(), m.end());
                break;
            case 'P':
                for(int d=0; d<len; d++){
                    if(m[d] >= '1' && m[d] <= '9'){
                        m[d]--;
                    }else if(m[d] == '0'){
                        m[d] = '9';
                    }
                }
                break;       
            case 'M':
                for(int d=0; d<len; d++){
                    if(m[d] >= '0' && m[d] <= '8'){
                        m[d]++;
                    }else if(m[d] == '9'){
                        m[d] = '0';
                    }
                }
                break;
            }
        }
        cout << m << endl;
    }
    return 0;
}