#P0354. 骑士巡游

骑士巡游

题目背景

骑士厌倦了重复看到相同的黑白方格,于是决定环游世界。每当骑士移动时,他都会朝一个方向移动两格,再垂直移动一格。骑士的世界就是他赖以生存的棋盘。我们的骑士生活在一个棋盘上,它的面积比普通的 888 * 8 棋盘小,但它仍然是矩形。你能帮助这个爱冒险的骑士制定旅行计划吗?

题目描述

找到一条骑士可以每个方格走一次的路。骑士可以在棋盘的任何方格上开始和结束。

注意:如果存在能够走完所有方格的方案,则起点可以是任意的。

输入格式

输入的第一行以正整数 nn 开始。接下来的行包含 nn 个测试用例。

每个测试用例由一行组成,每行包含两个正整数 ppqq。这表示一个 pp * qq 的棋盘,其中 pp 表示有多少个不同的正整数 1,......,p 1,......, p qq 表示有多少个不同的字母。字母是大写英文字母中的前 qq 个字母: A,B,...A, B, . . .

输出格式

每个场景的输出都以一行 Scenario #i: 开头,其中 ii 是场景的编号,从 11 开始。

第二行包含骑士 按字典序顺序 排列访问的第一条路径上的所有方格的位置。路径应在一行中给出,将访问过的方格名称连接起来。每个位置的名称由一个大写字母和一个数字组成。如果不存在这样的路径,则应在一行中输出 impossible 的结果。

第三行是一行空行。

样例

3
1 1
2 3
4 3
Scenario #1:
A1

Scenario #2:
impossible

Scenario #3:
A1B3C1A2B4C2A3B1C3A4B2C4

数据范围

1<=n<=10, 1<=pq<=261 <= n <= 10,\ 1 <= p * q <= 26