#include<iostream>#include<cstdio>#include<cstring>usingnamespace std;#define _for(i, a, b) for (int i = (a); i < (b); ++i)constint N =10;char g[N][N];int dx[]={-1,0,1,0}, dy[]={0,1,0,-1};int x, y;bool first =true;inlineboolinit(){if(!first)getchar();_for(i,0,5){_for(j,0,5){
g[i][j]=getchar();if(g[i][j]=='Z')returnfalse;if(g[i][j]==' ') x = i, y = j;}if(g[i][4]=='\n'){
g[i][4]=' ';
x = i, y =4;}elsegetchar();}returntrue;}inlineboolslove(){char op;bool flag =true;while((op =getchar())!='0'){int opt;if(op =='A') opt =0;elseif(op =='R') opt =1;elseif(op =='B') opt =2;elseif(op =='L') opt =3;elsecontinue;int a = x + dx[opt], b = y + dy[opt];if(a >=0&& a <5&& b >=0&& b <5){swap(g[x][y], g[a][b]);
x = a, y = b;}else flag =false;}return flag;}intmain(){int cnt =0;while(init()){if(first) first =false;elseputs("");printf("Puzzle #%d:\n",++cnt);if(slove()){_for(i,0,5){_for(j,0,5)printf("%s%c",(j ?" ":""), g[i][j]);puts("");}}elseputs("This puzzle has no final configuration.");}return0;}