#include <bits/stdc++.h>
using namespace std;
int main()
{
char s[6][6];
int cnt=1;
while(1){
first: int kx,ky;
int flagg=1;
for(int i=1;i<=5;i++)
for(int j=1;j<=5;j++)
s[i][j]=' ';
for(int i=1;i<=5;i++){
int flag=0;
for(int j=1;j<=5;j++){
s[i][j]=getchar();
if(s[i][j]=='\n') flag=1;
if (s[1][1]=='Z') return 0;
if(s[i][j]=='\n')s[i][j]=' ';
if(s[i][j]==' ') {
kx=i,ky=j;
}
}
if(flag==0) getchar();
}
char K;
while(cin>>K){
if(K=='A'){
swap(s[kx-1][ky],s[kx][ky]);
kx--;
if(kx<1) flagg=0;
}
else if(K=='B'){
swap(s[kx+1][ky],s[kx][ky]);
kx++;
if(kx>5) flagg=0;
}else if(K=='L'){
swap(s[kx][ky-1],s[kx][ky]);
ky--;
if(ky<1) flagg=0;
}else if(K=='R'){
swap(s[kx][ky+1],s[kx][ky]);
ky++;
if(ky>5) flagg=0;
}else if(K=='0'){
cout<<"Puzzle #"<<cnt++<<":"<<endl;
if(flagg==1){
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
cout<<s[i][j]<<" ";}
cout<<endl;}
cout<<endl;
getchar();
goto first;
}else{
cout<<"This puzzle has no final configuration."<<endl;
getchar();
cout<<endl;
goto first;
}
}
}
}
return 0;
}