#include <bits/stdc++.h>
using namespace std;
string J(const string& s) {
  int lasti = s.size() - 1;
  return s[lasti] + s.substr(0, lasti);
}
string C(const string& s) { return s.substr(1) + s[0]; }
string E(const string& s) {
  int size = s.size();
  int hsize = size / 2;
  if (size & 1)
    return s.substr(hsize + 1) + s[hsize] + s.substr(0, hsize);
  else
    return s.substr(hsize) + s.substr(0, hsize);
}
string A(const string& s) { return string(s.rbegin(), s.rend()); }
string P(const string& s) {
  string r;
  for (basic_string<char>::const_iterator i = s.begin(); i != s.end(); i++) {
    r.push_back(('0' <= *i && *i <= '9') ? (*i - '0' + 9) % 10 + '0' : *i);
  }
  return r;
}
string M(const string& s) {
  string r;
  for (basic_string<char>::const_iterator i = s.begin(); i != s.end(); i++) {
    r.push_back(('0' <= *i && *i <= '9') ? (*i - '0' + 1) % 10 + '0' : *i);
  }
  return r;
}
int main() {
  string (*op[128])(const string&);
  op['J'] = J;
  op['C'] = C;
  op['E'] = E;
  op['A'] = A;
  op['P'] = P;
  op['M'] = M;
  int n;
  cin >> n;
  while (n--) {
    string cmd, text;
    cin >> cmd >> text;
    for (basic_string<char>::iterator i = cmd.begin(); i != cmd.end(); i++) {
      text = op[*i](text);
    }
    cout << text << endl;
  }
}
