#include #include #include using namespace std; string str; char Inc(char c) { if('0' <= c && c < '9') return c+1; if(c == '9') return '0'; return c; } char Dec(char c) { if('0' < c && c <= '9') return c-1; if(c == '0') return '9'; return c; } void Op(char op) { int n = str.size(); string cp = str; switch(op) { case 'J': str = cp[n-1] + cp.substr(0, n-1); break; case 'C': str = cp.substr(1) + cp[0]; break; case 'E': if(n % 2) str = cp.substr(n/2 + 1) + cp[n/2] + cp.substr(0, n/2); else str = cp.substr(n/2) + cp.substr(0, n/2); break; case 'A': reverse(str.begin(), str.end()); break; case 'P': for(int i = 0; i < n; ++i) str[i] = Dec(cp[i]); break; case 'M': for(int i = 0; i < n; ++i) str[i] = Inc(cp[i]); break; } } int main() { int nnn; cin >> nnn; for(int iii = 0; iii < nnn; ++iii) { string op; cin >> op; cin >> str; for(int i = (int)op.size()-1; i >= 0; --i) { Op(op[i]); //cout << str << endl; } cout << str << endl; } }