#include<iostream>
#include<string>
#include<map>
#include<algorithm>
#include<cctype>
using namespace std;


string A(string s){
	return string(s.rbegin(),s.rend());
}
string C(string s){
	return s[s.size()-1]+string(s.begin(),s.end()-1);
}
string J(string s){
	return string(s.begin()+1,s.end())+s[0];
}
string E(string s){
	for(int i=0;i<s.size()/2;i++)swap(s[i],s[i+(s.size()+1)/2]);
	return s;
}
string M(string s){
	for(int i=0;i<s.size();i++){
		if(!isdigit(s[i]))continue;
		s[i]='0'+(s[i]-'0'-1+10)%10;
	}
	return s;
}
string P(string s){
	for(int i=0;i<s.size();i++){
		if(!isdigit(s[i]))continue;
		s[i]='0'+(s[i]-'0'+1)%10;
	}
	return s;
}
int main(){
	map<char,string (*)(string) > ifunc;
	ifunc['A']=A;ifunc['E']=E;
	ifunc['J']=C;ifunc['C']=J;
	ifunc['M']=P;ifunc['P']=M;
	int n;
	cin>>n;
	while(n--){
		string ord,mes;
		cin>>ord>>mes;
		for(int i=ord.size()-1;i>=0;i--)
			mes=(*ifunc[ord[i]])(mes);
		cout<<mes<<endl;
	}
	return 0;
}