SP9943 ISAB - Isabella Message
题目描述
### 背景
Isabella和Steve是好♂朋♀友,他们经常互通 ~~情书~~ 书信。他们分享愉快的经历,谈论周围的人们,倾述他们的情感...他们在信中分享几乎所有事情。当他们的信送出时,他们特别担心有人后偷看他们的信(特别是他们的父母)。所以他们给信进行了 只有他们知道解密方法的 加密,这就保证了他们的隐私。
信息被加密为了一个*N*×*N*(*N*位偶数)的矩阵,矩阵的每一个位置包含一个字符。
Steve用一张特殊的蒙版作为秘钥。
蒙版也是一个*N*×*N*的矩阵,这个矩阵包含*N*×*N*÷4个,大小为1×1的洞。
#### 解密方式如下
1. 将蒙版放在加密信息矩阵上
2. 写下透过洞可以看到的字符,**从上到下,从左到右**
3. 将蒙版**顺时针**旋转**90°**
4. 继续**步骤2**,直到你写下了**所有四个方向的情况**(按顺序将写下内容拼接)(**原意**:直到你写下了每一个信息矩阵中的每一个字符)
5. 去掉你写下信息中**多余的**空格
###### 举个栗子
你有了一个加密信息(如图1),并且你有了一个秘钥蒙版(如图2)。解密过程如图3展示,最后你会获得一个信息:"good morning"。


你大可假设蒙版是特制的,以解密过程中使每个字符仅出现一次(假设与解密过程原意有关)。
然而,过程的第一步有**多种放置方法**(实际就四种。。。。),因为蒙版可以旋转(**即**四个方向**均**可作为第一步放上信息矩阵)。因此,你可能得到**多个不同的结果**,比如上述例子中,你也可以得到"od morning go"(过程如图4所示),同样的,你也能得到其他答案,如"orning good m"和"ng good morni"。

Steve也不知道正确的解密方式,还好他还有一张**单词表**,而正确信息中只会出现**表上的单词**。当出现**多条满足条件**的信息时,选择**字典序**最小的一条。(此处完全**意译**,原意要长太扯了。。。。。)
当然也有 **没有满足条件的信息** 的情况。
Isabella每天的发信息,而解密工作耗费了Steve大把的精力,Steve总迫不及代,希望立刻看到信息,于是他找到了你帮他构造程序解密
上述的加密信息矩阵,蒙版,单词表以以下方式给出
输入格式
第一行为一个整数***T***,指出有***T***个矩阵需要解密。
对于**每一种情况** ***i***:
- 第一行给出整数***N***
- 接下来***N***行,每行***N***个字符,描述**加密信息**矩阵(字符'.'表示空格)
- 接下来***N***行,每行***N***个字符,描述**秘钥蒙版**矩阵
- 接着一行给出***M***,表示**单词表**单词数
- 接着***M***行,每行给出表中的一个单词
输出格式
输出共***T***行
对于输入***i***,输出一行"Case #i: S"
其中,***i***为***i***(嗯。。。),S为满足条件的信息
若**没有满足条件的信息**,S为"FAIL TO DECRYPT".