#P9678. 第三题

第三题

题目描述

sl 想打 dota2 了,但他现在在机房,而且 yz 就在他旁边,他自然不能玩 dota2 这种这么容易被发现(鼠标、键盘发出啪啪啪的声音,眼睛中射出诡异的光)的游戏,所以他只好打开了一个小游戏。这个小游戏是这样的:在一个平面上有 nnAA 类点(从 1n1\sim n 编号),mmBB 类点(从 1m1\sim m 编号)。AA 类点很团结,他们想用 n1n-1 条边将他们连成一棵树;BB 类点也想用 m1m-1 条边连成一棵树(边不可弯曲)。但这些边都不能在非 ABAB 类点出相交。如果成功连边则过关。

sl 有个不好的习惯:如果没有过关,他就会气得砸键盘。如果在平时,没有什么关系(因为 sl 不喜欢运动,只喜欢打游戏,以他的力气砸不坏键盘);然而此时 yz 在他旁边,他一砸键盘,yz 就知道他在打游戏了,一定会狠狠地 D 他一顿。凭 sl 那点可怜的智商,当然过不了关啦,所以为了拯救 sl,你只好教他玩了。

输入格式

第一行两个正整数 n,mn,m。含义如题所述。

接下来 nn 行,每行两个整数,代表 AA 类点的位置。

接下来 mm 行,每行两个整数,代表 BB 类点的位置。

输出格式

如果无解,输出 GG!

否则输出 n+m2n+m-2 行。

n1n-1 行,每行两个整数 a,ba,b,代表在 aaAA 类点和 bbAA 类点间连一条边。

m1m-1 行,每行两个整数 a,ba,b,代表在 aaBB 类点和 bbBB 类点间连一条边。

样例

3 2
1 0
0 1
2 3
0 0
1 1
1 3
2 3
1 2

另有若干组大样例位于附加文件中。

数据范围

  • 对于 30%30\% 的数据,n+m10n+m\le 10
  • 对于另 10%10\% 的数据,n+m100n+m\le 100,存在两个相离的多边形,一个覆盖了所有 AA 类点,另一个覆盖了所有 BB 类点。
  • 对于另 10%10\% 的数据,n+m3×103n+m\le 3\times 10^3,存在两个相离的多边形,一个覆盖了所有 AA 类点,另一个覆盖了所有 BB 类点。
  • 对于 100%100\% 的数据,2n+m3×1032\le n+m\le 3\times 10^3,点的坐标在 01090\sim 10^9 内,没有三点共线。