#include<stdio.h>
#include<string.h>
char SS[101];
void Henkan(char);
int main()
{
  int i,j,n;
  char S[101];
  scanf("%d",&n);
  for(i=0;i<n;i++){
    scanf("%s",S);
    scanf("%s",SS);
    for(j=strlen(S)-1;j>=0;j--){
      Henkan(S[j]);
    }
    printf("%s\n",SS);
  }
  return 0;
}

void Henkan(char SSS){
  int i;
  char tmp,t1[101],t2[101];
  switch(SSS){
  case 'C':
    tmp=SS[0];
    for(i=0;i<strlen(SS)-1;i++)SS[i]=SS[i+1];
    SS[strlen(SS)-1]=tmp;
    break;
  case 'J':
    tmp=SS[strlen(SS)-1];
    for(i=strlen(SS)-1;i>=1;i--)SS[i]=SS[i-1];
    SS[0]=tmp;
    break;
  case 'E':
    for(i=0;i<strlen(SS)/2;i++)t1[i]=SS[i];
    t1[i]='\0';
    for(i=0;i<strlen(t1);i++)t2[strlen(t1)-1-i]=SS[strlen(SS)-1-i];
    for(i=0;i<strlen(t1);i++)SS[strlen(SS)-1-i]=t1[strlen(t1)-1-i];
    for(i=0;i<strlen(t1);i++)SS[i]=t2[i];
    break;
  case 'A':
    for(i=0;i<strlen(SS)/2;i++){
      tmp=SS[strlen(SS)-1-i];
      SS[strlen(SS)-1-i]=SS[i];
      SS[i]=tmp;
    }
    break;
  case 'M':
    for(i=0;i<strlen(SS);i++){
      if(SS[i]>='0' &&SS[i]<'9')SS[i]++;
      else if(SS[i]=='9')SS[i]='0';
    }
    break;
  case 'P':
    for(i=0;i<strlen(SS);i++){
      if(SS[i]>'0' &&SS[i]<='9')SS[i]--;
      else if(SS[i]=='0')SS[i]='9';
    }
    break;
  }
}