#include<iostream>
#include<vector>
#include<string>
#include<algorithm>

using namespace std;

string correctJ(string st){
	int len = st.size();
	string cst = st.substr(len-1,1);
	cst += st.substr(0,len-1);
	return cst;
}

string correctC(string st){
	int len = st.size();
	string cst = st.substr(1);
	cst += st.substr(0,1);
	return cst;
}

string correctE(string st){
	int len = st.size();
	string cst = st.substr(len - (len)/2);
	if(len % 2 != 0){
		cst += st.substr(len/2,1);
	}
	cst += st.substr(0,len/2);
	return cst;
}

string correctA(string st){
	string cst = st;
	reverse(cst.begin(),cst.end());
	return cst;
}

string correctP(string st){
	string cst = st;
	for(int i = 0;i < cst.size();i++){
		if(cst[i] - '0' < 10 && cst[i] != '0'){
			cst[i] = cst[i] - 1;
		}else if(cst[i] == '0'){
			cst[i] = '9';
		}
	}
	return cst;
}

string correctM(string st){
	string cst = st;
	for(int i = 0;i < cst.size();i++){
		if(cst[i] - '0' < 9){
			cst[i] = cst[i] + 1;
		}else if(cst[i] == '9'){
			cst[i] = '0';
		}
	}
	return cst;
}

int main(){
	vector<string> ans;
	int n;
	cin >> n;
	for(int i = 0;i < n;i++){
		string ser;
		cin >> ser;
		string mes;
		cin >> mes;
		string cmes = mes;
		for(int j = ser.size()-1;j >= 0;j--){
			if(ser[j] == 'J'){
				cmes = correctJ(cmes);
			}else if(ser[j] == 'C'){
				cmes = correctC(cmes);
			}else if(ser[j] == 'E'){
				cmes = correctE(cmes);
			}else if(ser[j] == 'A'){
				cmes = correctA(cmes);
			}else if(ser[j] == 'P'){
				cmes = correctP(cmes);
			}else if(ser[j] == 'M'){
				cmes = correctM(cmes);
			}
		}
		ans.push_back(cmes);
	}
	
	for(int i = 0;i < ans.size();i++){
		cout << ans[i] << endl;
	}
	return 0;
}


