“Joining points” 是一个单人游戏。游戏开始时,选择两个大于 2 的整数,分别记为 $g$ 和 $r$。然后在正方形的四个顶点处画四个点,使顶部的两个点为绿色,底部的两个点为红色。在正方形内部绘制绿色点和红色点,并确保没有任何三个点(包括最初的四个点)在同一条直线上。继续绘制,直到绿色点的总数等于 $g$,红色点的总数等于 $r$。
画板绘制完成后,开始连接点。只要满足以下条件,任意两个点都可以用线段连接: 要连接的两个点颜色相同,且 连接这两个点的线段不与任何先前绘制的线段相交(端点除外)。
如果可以通过已绘制的线段从点 $u$ 移动到点 $v$,则称点 $u$ 和点 $v$ 处于同一个连通分量中。
如果你能使用恰好 $g-1$ 条线段将所有绿色点连接成一个连通分量,并使用恰好 $r-1$ 条线段将所有红色点连接成另一个连通分量,你就赢得了游戏。可以证明,如果点按照上述方式绘制,则总有一种方法可以赢得游戏。
你将获得一个边长为 $s$ 的正方形画板,其中包含 $g$ 个绿色点和 $r$ 个红色点,它们的坐标由整数对 $(x_i, y_i)$ 表示。绿色点编号从 1 到 $g$,其中左上角的点 $(0, s)$ 为 1,右上角的点 $(s, s)$ 为 2,内部点从 3 到 $g$ 编号,顺序任意。红色点编号从 1 到 $r$,其中左下角的点 $(0, 0)$ 为 1,右下角的点 $(s, 0)$ 为 2,内部点从 3 到 $r$ 编号,顺序任意。
图中展示了一个示例游戏,所有绿色点连接成一个连通分量,所有红色点连接成另一个连通分量。你可以看到没有任何三个点在同一条直线上,且除了端点外,没有任何两条线段相互交叉。
任务
编写一个程序,给定 $g$ 个绿色点的坐标和 $r$ 个红色点的坐标,决定如何绘制 $g-1$ 条绿色线段和 $r-1$ 条红色线段,使得所有绿色点处于同一个连通分量中,所有红色点处于另一个连通分量中,且没有任何两条线段相互交叉。
数据范围
$3 \le g \le 50\,000$ 绿色点的数量。 $3 \le r \le 50\,000$ 红色点的数量。 $0 < s \le 200\,000\,000$
输入格式
第一行包含整数 $g$。 接下来的 $g$ 行:每行包含两个空格分隔的整数,表示每个绿色点的坐标 $x_i$ 和 $y_i$,编号从 1 到 $g$。 第 $g+2$ 行:包含整数 $r$。 接下来的 $r$ 行:每行包含两个空格分隔的整数,表示每个红色点的坐标 $x_i$ 和 $y_i$,编号从 1 到 $r$。
输出格式
输出文件必须包含 $(g-1) + (r-1)$ 行,每一行对应一条连接点的线段。
每行必须包含三个空格分隔的实体:两个整数和一个字符。这两个整数表示该线段连接的两个点的编号。如果连接的是绿色点,字符必须为 g;如果连接的是红色点,字符必须为 r。
列出线段的顺序无关紧要;线段端点的顺序也无关紧要。
样例
输入格式 1
6 0 1000 1000 1000 203 601 449 212 620 837 708 537 8 0 0 1000 0 185 300 314 888 416 458 614 622 683 95 838 400
输出格式 1
1 3 g 3 1 r 3 5 r 4 6 r 6 5 r 4 6 g 1 2 g 1 2 r 5 2 g 2 6 g 7 8 r 8 2 r
子任务
对于总分 35 分的一组测试用例,每个测试运行将满足以下要求: $3 \le g \le 20$ $3 \le r \le 20$