Gooli 是一家大型公司,在多山地区拥有 $B$ 座办公楼。这些办公楼的编号为 $1$ 到 $B$。
CEO 想要在办公楼之间建造一系列滑梯,以便她能从位于 $1$ 号楼的办公室前往位于 $B$ 号楼的最爱咖啡馆。滑梯当然是单向的,但由于办公楼很高且配有电梯,滑梯可以从任意一座办公楼出发并到达任意另一座办公楼,且方向不限。具体来说,对于任意两座办公楼 $x$ 和 $y$,你可以建造零个或一个从 $x$ 到 $y$ 的滑梯,也可以建造零个或一个从 $y$ 到 $x$ 的滑梯。唯一的例外是,不允许建造从 $B$ 号楼出发的滑梯,因为一旦 CEO 到达该楼,她就不需要再进行任何滑行了。
为了纪念 Gooli 成立正好 $M$ 毫秒,设计方案必须确保 CEO 从 $1$ 号楼到 $B$ 号楼恰好有 $M$ 种不同的滑行路径。一条路径是指一个以 $1$ 号楼开头、以 $B$ 号楼结尾的办公楼序列,且序列中每一对相邻的办公楼 $x$ 和 $y$ 之间都存在一条从 $x$ 到 $y$ 的滑梯。注意,CEO 并不要求通过滑梯可以从任意办公楼到达其他任何办公楼。
你能否给出一组满足 CEO 要求的滑梯方案,或者确定这是不可能的?
输入格式
输入的第一行包含测试用例的数量 $T$。接下来有 $T$ 行,每行包含两个整数 $B$ 和 $M$,含义如上所述。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是 POSSIBLE 或 IMPOSSIBLE,取决于 CEO 的要求是否可以满足。如果可以满足,额外输出 $B$ 行,每行包含 $B$ 个字符,表示一个矩阵,描述满足要求的滑梯建造方案。这些行中第 $i$ 行的第 $j$ 个字符($i$ 和 $j$ 均从 $1$ 开始计数)应为 $1$(如果应建造从 $i$ 号楼到 $j$ 号楼的滑梯)或 $0$(否则)。第 $i$ 行的第 $i$ 个字符应始终为 $0$,且最后一行中的所有字符均应为 $0$。
如果存在多种解,你可以输出其中任意一种。
数据范围
时间限制:每个测试集 20 秒。 内存限制:1 GB。 $1 \le T \le 100$。
小型数据集(测试集 1 - 可见) $2 \le B \le 6$ $1 \le M \le 20$
大型数据集(测试集 2 - 隐藏) $2 \le B \le 50$ $1 \le M \le 10^{18}$
样例
样例输入 1
3 5 4 2 1 4 20
样例输出 1
Case #1: POSSIBLE 01001 00110 00001 00101 00000 Case #2: POSSIBLE 01 00 Case #3: IMPOSSIBLE
说明
样例输出展示了每个测试用例的一种可能方案。其他有效的答案可能存在。
以下是样例 1 的方案示意图:
从 $1$ 号楼到 $5$ 号楼的四种路径为: $1$ 到 $5$ $1$ 到 $2$ 到 $3$ 到 $5$ $1$ 到 $2$ 到 $4$ 到 $5$ $1$ 到 $2$ 到 $4$ 到 $3$ 到 $5$
在样例 3 中,建造从 $1$ 到 $2$、$2$ 到 $3$、$3$ 到 $1$ 以及 $1$ 到 $4$ 的滑梯会产生无穷多种到达 $4$ 号楼的路径(她可以直接去 $4$ 号楼,或者绕环一次后再去 $4$ 号楼,或者绕环两次……),但 CEO 要求恰好 $20$ 种路径。