Janko 有 $N$ 个矩形笔记本放在桌子上。第 $i$ 个笔记本的边长为 $A_i$ 和 $B_i$。桌子旁边有一个抽屉柜,包含 $N$ 个抽屉,它们形状为矩形,但大小可能不同。第 $j$ 个抽屉的宽度为 $X_j$,深度为 $Y_j$。Janko 想要把每个笔记本存放在各自的抽屉里。他可以旋转笔记本,但放置时必须使笔记本的边与抽屉的边对齐。如果笔记本每一条边的长度都不超过抽屉对应对齐边的长度,则笔记本可以放入抽屉。
Janko 决定采用一种分配笔记本到抽屉的程序。对于每个笔记本,他会确定能放入该笔记本的抽屉数量。同样,他也会确定每个抽屉能容纳的笔记本数量。然后,他会选择选项数量最少的对象(笔记本或抽屉)。如果该对象没有可选方案,程序将以失败告终。如果有多个对象具有相同的最少选项数量,他将随机均匀地选择其中一个。他会从所选对象的选项中随机均匀地选择一个进行分配。如果选中的对象是笔记本,他会将其分配给一个能容纳该笔记本的随机抽屉。如果选中的对象是抽屉,他会将其分配给一个能放入该抽屉的随机笔记本。他会移除已分配的配对(笔记本和抽屉),并重复该过程,直到所有笔记本都被分配到抽屉中。
Metka 听说了 Janko 关于将笔记本放入抽屉的想法。她确信他的程序是有缺陷的,可能无法成功。请你编写一个程序,读入笔记本和抽屉的数量 $N$,并输出一组笔记本和一组抽屉,使得 Janko 的随机贪心方法不一定能找到一种将所有笔记本分配到抽屉的方案,尽管这种分配方案是存在的。
输入格式
第一行包含一个整数,即笔记本和抽屉的数量 $N$。
数据范围
- $150 \le N \le 250$
输出格式
首先,输出 $N$ 行,每行包含两个空格分隔的整数,表示笔记本的边长 $A_i$ 和 $B_i$。接着,输出一个空行,随后输出 $N$ 行,每行包含两个空格分隔的整数,表示抽屉的尺寸 $X_j$ 和 $Y_j$。所有尺寸必须是 $1$ 到 $1000$ 之间的整数(包含 $1$ 和 $1000$)。
说明
为了评估你的程序输出,我们将对你的数据(笔记本和抽屉尺寸)运行 Janko 的随机贪心方法。注意,必须存在一种将所有笔记本分配到抽屉的方案,否则你的输出将被视为错误。你的方案将在 $20$ 个测试用例上进行评估,且 Janko 的方法必须在所有测试用例上都失败。对于每个测试用例,我们将使用固定的随机种子运行一次 Janko 的方法。
样例
样例输入 1
1
样例输出 1
4 3 2 6
样例输入 2
3
样例输出 2
4 4 3 5 6 1 2 7 5 4 5 5
说明
注意,提供的样例输入和输出是不正确的。输入不满足 $150 \le N$ 的约束。
在第一个样例中,只有一个笔记本无法放入唯一的抽屉,因此不存在有效的分配方案。
在第二个样例中,Janko 的方法会成功地将所有笔记本分配到抽屉中。首先,它会选择最后一个笔记本 ($6 \times 1$) 或第一个抽屉 ($2 \times 7$) 并将其分配给对方,因为两者都只有一个选项。现在剩下的两个笔记本都可以放入剩下的两个抽屉中,因此任何分配方式都可以。