#include <bits/stdc++.h>
using namespace std;
string j(string str) {
  string ret = "";
  ret.push_back(str[str.size() - 1]);
  for (int i = 0; i < (str.size() - 1); i++) {
    ret.push_back(str[i]);
  }
  return ret;
}
string c(string str) {
  string ret = "";
  for (int i = 1; i < str.size(); i++) {
    ret.push_back(str[i]);
  }
  ret.push_back(str[0]);
  return ret;
}
string e(string str) {
  int len = str.size() / 2;
  string tmp1 = str.substr(0, len);
  string tmp2 = str.substr(str.size() - len, str.size());
  string ret = "";
  ret += tmp2;
  if (len % 2 == 1) {
    ret += str[len];
  }
  ret += tmp1;
  return ret;
}
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 n;
  cin >> n;
  for (int aaa = 0; aaa < (n); aaa++) {
    string messenger, str;
    cin >> messenger >> str;
    for (int i = messenger.size() - 1; i >= 0; i--) {
      switch (messenger[i]) {
        case 'J':
          str = j(str);
          break;
        case 'C':
          str = c(str);
          break;
        case 'E':
          str = e(str);
          break;
        case 'A':
          str = a(str);
          break;
        case 'P':
          str = p(str);
          break;
        case 'M':
          str = m(str);
          break;
      }
    }
    cout << str << endl;
  }
  return 0;
}
