问题描述:
Incomplete Chessboard
Description
TheBeet有一个块大小为(2^{N}2N * 2^{N}2N)的棋盘。这个棋盘是由一个个格子组成的。很不幸的,在一个月黑风高的晚上,它被摔坏了。不幸中的万幸,它只被摔坏了一个格子(此格子可以在棋盘的任意位置)。
但是这个棋盘再也不能用来下棋了,于是TheBeet想把这个棋盘切成如以下的几种小块。但是TheBeet不想浪费任何一个格子,您能帮助TheBeet么?
Input
每个输入文件只包含一组数据。
每组测试数据包含两行,第一行为N ( 1 <= N <= 10),表示棋盘的大小为2^{N}2N。接下来那行里面有两个数字x, y(1 <= x, y <= 2^{N}2N)表示这个残缺的格子在棋盘的第x行和第y列。
Output
如果不存在这样的划分情况,您的程序只需要输出"-1"(不包含引号)。否则输出整个棋盘的划分情况,每个相连的块用一个正整数字(范围[1, (2^{N}2N * 2^{N}2N
Sample Input 1
2 2 3