#include <stdio.h>
#include <ctype.h>
#include <string.h>

void inv_J(char* str) {
	char tmp;
	int i,max=strlen(str);
	tmp=str[max-1];
	for(i=max-1;i>0;i--) {
		str[i]=str[i-1];
	}
	str[0]=tmp;
}

void inv_C(char* str) {
	char tmp;
	int i,max=strlen(str);
	tmp=str[0];
	for(i=0;i<max-1;i++) {
		str[i]=str[i+1];
	}
	str[max-1]=tmp;
}

void inv_E(char* str) {
	char tmp;
	int i,max=strlen(str);
	int max2=max/2;
	for(i=0;i<max2;i++) {
		tmp=str[i];
		str[i]=str[max2+i+max%2];
		str[max2+i+max%2]=tmp;
	}
}

void inv_A(char* str) {
	char tmp;
	int i,max=strlen(str);
	int max2=max/2;
	for(i=0;i<max2;i++) {
		tmp=str[i];
		str[i]=str[max-i-1];
		str[max-i-1]=tmp;
	}
}

void inv_P(char* str) {
	int i,max=strlen(str);
	for(i=0;i<max;i++) {
		if(isdigit(str[i])) {
			str[i]--;
			if(str[i]<'0')str[i]+=10;
		}
	}
}

void inv_M(char* str) {
	int i,max=strlen(str);
	for(i=0;i<max;i++) {
		if(isdigit(str[i])) {
			str[i]++;
			if(str[i]>'9')str[i]-=10;
		}
	}
}

int main(void) {
	char messangers[8];
	char message[28];
	int data_num,cur_data;
	int i;
	scanf("%d",&data_num);
	for(cur_data=0;cur_data<data_num;cur_data++) {
		scanf("%s",messangers);
		scanf("%s",message);
		for(i=strlen(messangers)-1;i>=0;i--) {
			switch(messangers[i]) {
				case 'J':
					inv_J(message);
					break;
				case 'C':
					inv_C(message);
					break;
				case 'E':
					inv_E(message);
					break;
				case 'A':
					inv_A(message);
					break;
				case 'P':
					inv_P(message);
					break;
				case 'M':
					inv_M(message);
					break;
			}
		}
		puts(message);
	}
	return 0;
}