#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<math.h>
#include<string.h>
#include<ctype.h>
using namespace std;
int main()
{
char map[5][5],s;
int m,n,kase=0;
while(1)
{
int flag=0;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
scanf("%c",&map[i][j]);
if(map[0][0]=='Z')
return 0;
if(map[i][j]==' ')
{
m=i;
n=j;
}
}
getchar();
}
while((s=getchar())!='0')
{
if(s=='A'&&m>0)
{
map[m][n]=map[m-1][n];
map[m-1][n]=' ';
m--;
}
else if(s=='B'&&m<4)
{
map[m][n]=map[m+1][n];
map[m+1][n]=' ';
m++;
}
else if(s=='L'&&n>0)
{
map[m][n]=map[m][n-1];
map[m][n-1]=' ';
n--;
}
else if(s=='R'&&n<4)
{
map[m][n]=map[m][n+1];
map[m][n+1]=' ';
n++;
}
else if(s!='\n')
flag=1;
}
getchar();
if(kase==0)
printf("Puzzle #%d:\n",++kase);
else
printf("\nPuzzle #%d:\n",++kase);
if(flag)
printf("This puzzle has no final configuration.\n");
else
{
for(int i=0;i<5;i++)
{
for(int j=0;j<4;j++)
printf("%c ",map[i][j]);
printf("%c\n",map[i][4]);
}
}
}
return 0;
}