#ZZ0003. J的花圃

J的花圃

题目描述

喜欢养花的 J 有两个小花圃,一个花圃有 nn 个赏花点,另一个也有 nn 个赏花点。她把两个花圃中的赏花点分别编号为 11nn

为了方便赏花, J 决定给花圃再添加些小路。但两个花圃有着某种关联,所以如果在一个花圃中添加了连接赏花点 uiu _i , viv_i 的路,在另一个花圃中也会加入这条路。为了美观,J要求铺完所有小路之后剩下的还是两个小花圃。

铺设的路越多,越方便赏花。J 想知道最多能铺设多少条路,并请你给她一个方案。

输入格式

第一行输入三个非负整数 nn , m1m_1 , m2m_2 ,表示两个小花圃各自的赏花点,第一个花圃已有的小路数与第二个花圃已有的小路数。

接下来 mm 行,第 ii 行输入两个正整数 uiu_i , viv_i ,表示第一个花圃中的一条小路。

接下来 mm 行,第 jj 行输入两个正整数 uju_j , vjv_j , 表示第二个花圃中的一条小路。

输出格式

第一行输出一个非负整数 mm ,表示最多能添加的小路的数量。

接下来 mm 行,第 ii 行输出两个正整数 uku_k , vkv _k ,表示一条添加的小路。

测试样例

5 3 2
4 3
4 5
1 2
4 3
1 4
1
4 2

样例解释1

可以证明最多只能添加一条连接赏花点 4422 的小路。

8 1 2
7 1
1 5
6 2
5
4 7 
6 8 
5 2 
3 2 
4 3

数据规模与约定

对于10%10\%的数据,n5n \le 5

对于30%30\%的数据,n50n \le 50

对于50%50\%的数据,n3000n \le 3000

对于70%70\%的数据,n3×104n \le 3 \times 10 ^4

对于90%90\%的数据,n2×105n \le 2 \times 10 ^5

对于100%100\%的数据,0n1.5×1060 \le n \le 1.5 \times 10 ^6 , 0m10 \le m_1 ,m2m _2 << nn , 11 \le uiu_i ,viv_i ,uju _j ,vjnv_j \le n ,保证输入的是两个花圃。