#include #include string J(string str) { string ret; ret += str[str.size() - 1]; for (int i = 0; i < str.size() - 1; i++) { ret += str[i]; } return ret; } string C(string str) { string ret; for (int i = 1; i < str.size(); i++) { ret += str[i]; } ret += str[0]; return ret; } string E(string str) { string ans; if (str.size() % 2 == 0) { for (int i = str.size() / 2; i < str.size(); i++) { ans += str[i]; } for (int i = 0; i < str.size() / 2; i++) { ans += str[i]; } } else { for (int i = str.size() / 2 + 1; i < str.size(); i++) { ans += str[i]; } ans += str[str.size() / 2]; for (int i = 0; i < str.size() / 2; i++) { ans += str[i]; } } return ans; } string A(string str) { reverse(str.begin(), str.end()); return str; } string P(string str) { for (int i = 0; i < str.size(); i++) { if (isdigit(str[i])) { if (str[i] == '0') { str[i] = '9'; } else { str[i]--; } } } return str; } string M(string str) { for (int i = 0; i < str.size(); i++) { if (isdigit(str[i])) { if (str[i] == '9') { str[i] = '0'; } else { str[i]++; } } } return str; } int main() { int loop; cin >> loop; while (loop--) { string D, B; cin >> D >> B; for (int i = D.size() - 1;i >= 0; i--) { if (D[i] == 'J') { B = J(B); } else if (D[i] == 'C') { B = C(B); } else if (D[i] == 'E') { B = E(B); } else if (D[i] == 'A') { B = A(B); } else if (D[i] == 'P') { B = P(B); } else if (D[i] == 'M') { B = M(B); } } cout << B << endl; } return 0; }