#357. 无聊的游戏

无聊的游戏

说明

这一天,chou星觉得生活没有乐趣,便开始玩很多年前儿童玩的无聊小游戏,这是一个拼图游戏,总框架是一个5x5的大正方形,共有24个小正方块在其中,每个小正方块上都印着字母表上的一个唯一的字母,拼图的目的是交换空白与其四周小方块其中之一的位置,使框架按字母顺序显示字母。下图给出例子与操作顺序:

操作顺序为(即空白格的移动顺序):上右右下下左。

现给你初始拼图的样子和空白格的移动顺序,编写程序输出移动后的拼图的样子。
Image

输入格式

多组输入,每个例子前五行输入为拼图的样子,每一行有五个字符(相邻字符之前无空格),接下来的几行表示移动顺序,仅有五个字符,A表示空白格与其上面的正方形格交换位置,B表示空白格与其下面的正方形格交换位置,L表示空白格与其左面的正方形格交换位置,R表示空白格与其右面的正方形格交换位置,可能存在非法移动,例:空白格位于右边边界时无法再向右移动。移动顺序可能会有几行,但以数字0结尾。一组数据以字符Z结尾。

输出格式

每个拼图的输出以拼图标记开始例如(Puzzle #1, Puzzle #2, etc.),如果这个拼图存在非法移动,你应该输出“This puzzle has no final configuration.”(不输出引号),否则,你应该打印最后的拼图形状,拼图有五行,每一行中相邻的两个字符之间有空格,最后一个字符后没有空格。为区别不同的拼图,你应在相邻拼图中间输出一个空行。

样例

TRGSJ
XDOKI
M VLN
WPABE
UQHCF
ARRBBL0
ABCDE
FGHIJ
KLMNO
PQRS
TUVWX
AAA
LLLL0
ABCDE
FGHIJ
KLMNO
PQRS 
TUVWX
AAAAABBRRRLL0
Z
Puzzle #1:
T R G S J
X O K L I
M D V B N
W P   A E
U Q H C F

Puzzle #2:
  A B C D
F G H I E
K L M N J
P Q R S O
T U V W X

Puzzle #3:
This puzzle has no final configuration.