#include <bits/stdc++.h>
using namespace std;
struct edge {
  int from, to, cost;
};
string s, mes;
string solve(string s, char c) {
  if (c == 'J') return s.substr(1) + s[0];
  if (c == 'C') return s[s.size() - 1] + s.substr(0, s.size() - 2);
  if (c == 'E') {
    if (s.size() % 2 == 0)
      return s.substr(s.size() / 2, s.size() - 1) + s.substr(0, s.size() / 2);
    else
      return s.substr(s.size() / 2 + 1, s.size()) + s[s.size() / 2] +
             s.substr(0, s.size() / 2);
  }
  if (c == 'A') {
    string r = "";
    for (int i = (0); i < (s.size()); i++) r += s[s.size() - i - 1];
    return r;
  }
  if (c == 'P') {
    string r = "";
    for (int i = (0); i < (s.size()); i++) {
      if (isdigit(s[i])) {
        if (s[i] == '9')
          r += '0';
        else
          r += s[i] + 1;
      } else
        r += s[i];
    }
  }
  if (c == 'M') {
    string r = "";
    for (int i = (0); i < (s.size()); i++) {
      if (isdigit(s[i])) {
        if (s[i] == '0')
          r += '9';
        else
          r += s[i] - 1;
      } else {
        r += s[i];
      }
    }
  }
}
int main() {
  int n;
  cin >> n;
  for (int i = (0); i < (n); i++) {
    cin >> mes >> s;
    for (int i = (0); i < (mes.size()); i++) {
      s = solve(s, mes[i]);
    }
    cout << s << endl;
  }
}
