#include <iostream>
#include <bits/stdc++.h>
#define N 5
using namespace std;
bool isSafe(int x,int y)
{
return x>=0 && x<N && y>=0 && y<N;
}
int main()
{
char puzzle[N][N];
int kase = 0;
string s;
while(1)
{
int bx = 0,by = 0;
for(int i = 0;i<N;i++)
{
getline(cin,s);
if(i == 0 && s[0] == 'Z') return 0;
for(int j = 0;j<N;j++)
{
puzzle[i][j] = s[j];
if(!isalpha(s[j]))
{
bx = i;
by = j;
}
}
}
string action;
do{
getline(cin,s);
action += s;
}while(action[action.size()-1] != '0');
int tx,ty;
int flag = 0;
for(int i = 0;i<action.size();i++)
{
tx = bx;
ty = by;
if(action[i] == 'A') tx--;
if(action[i] == 'B') tx++;
if(action[i] == 'L') ty--;
if(action[i] == 'R') ty++;
if(!isSafe(tx,ty))
{
flag = 1;
break;
}
else
{
swap(puzzle[bx][by],puzzle[tx][ty]);
bx = tx;
by = ty;
}
}
if(kase++ != 0) cout<<endl;
cout<<"Puzzle #"<<kase<<":"<<endl;
if(flag) cout<<"This puzzle has no final configuration.\n";
else
{
for(int i = 0;i<N;i++)
{
for(int j = 0;j<N-1;j++)
{
cout<<puzzle[i][j]<<" ";
}
cout<<puzzle[i][N-1]<<endl;
}
}
}
return 0;
}
/**
TRGSJ
XDOKI
M VLN
WPABE
UQHCF
ARRBBL
0
**/