#icpc2015autumnf. [icpc2015autumn_f]Modern Announce Network

[icpc2015autumn_f]Modern Announce Network

问题描述

今天,现代的青少年们使用社交网络服务(SNS)来进行交流。

在一所高中里,有 NN 名学生使用一款名为ICPC(国际编程竞赛社区)的SNS。这 NN 名学生中,有 AA 个一年级学生、BB 个二年级学生和 CC 个三年级学生是编程社团的成员。请注意,可能会有一些学生不是编程社团的成员,因此 A+B+CA+B+C 可能小于 NN

同年级的社团成员之间有着良好的关系。因此,每个年级在SNS上都有一个聊天群组,该年级的社团成员可以通过群组聊天与彼此即时交流。另一方面,不同年级之间的关系不太好,整个社团和整个高中都没有一个聊天群组。

为了向SNS上的所有社团成员广播一条消息,社团管理员想出了一种方法:管理员将消息告诉 NN 名学生中的任意一位学生,并要求他们通过聊天群组和自己的朋友在SNS上传播该消息。(管理员自己没有SNS账号。)由于同年级的成员可以通过年级的聊天群组广播消息,我们可以假设如果某个年级的一个成员接收到消息,该年级的所有其他成员也会立即收到消息。因此,如果至少有每个年级的一个成员被告知该消息,我们可以假设该消息已在SNS上向所有社团成员广播。

由于与朋友之间的交流会产生麻烦,我们希望将朋友之间的通信次数最小化。要广播一条消息给所有社团成员,朋友之间通信的最小次数是多少?为了实现通信最小化,管理员应该首先把消息告诉给谁?

输入

输入包含一个测试用例。测试用例的格式如下:

NN AA BB CC
a_1a\_1 ... a_Aa\_A
b_1b\_1 ... b_Bb\_B
c_1c\_1 ... c_Cc\_C
MM
x_1x\_1 y_1y\_1
...
x_Mx\_M y_My\_M

第一行包含四个整数 NNAABBCCNN (3leqNleq10,0003 \\leq N \\leq 10{,}000) 表示SNS中的学生人数,AABBCC (1leqA,B,CleqN1 \\leq A, B, C \\leq NA+B+CleqNA + B + C \\leq N) 表示编程社团中的一二三年级成员人数。每个SNS上的学生用一个介于 11NN 之间的唯一数字ID表示。第二行包含 AA 个整数 a_1,cdots,a_Aa\_1, \\cdots, a\_A (1leqa_1,cdots,a_AleqN1 \\leq a\_1, \\cdots, a\_A \\leq N),表示一年级成员的ID。第三行包含 BB 个整数 b_1,cdots,b_Bb\_1, \\cdots, b\_B (1leqb_1,cdots,b_BleqN1 \\leq b\_1, \\cdots, b\_B \\leq N),表示二年级成员的ID。第四行包含 CC 个整数 c_1,cdots,c_Cc\_1, \\cdots, c\_C (1leqc_1,cdots,c_CleqN1 \\leq c\_1, \\cdots, c\_C \\leq N),表示三年级成员的ID。可以假设 $a\_1, \\cdots, a\_A, b\_1, \\cdots, b\_B, c\_1, \\cdots, c\_C$ 是不相同的。第五行包含一个整数 MM (2leqMleq500,0002 \\leq M \\leq 500{,}000)。MM 表示SNS中存在友谊关系的学生对数。以下 MM 行中的第 ii 行包含两个整数 x_ix\_iy_iy\_i (1leqx_i,y_ileqN1 \\leq x\_i, y\_i \\leq N),表示SNS中 ID 分别为 x_ix\_iy_iy\_i 的两位学生是朋友。可以假设 x_ineqy_ix\_i \\neq y\_i (1leqileqM1 \\leq i \\leq M),且如果 ineqji \\neq j (1leqi,jleqM1 \\leq i, j \\leq M),则有 x_ineqx_jx\_i \\neq x\_jy_ineqy_jy\_i \\neq y\_j 以及 x_ineqy_jx\_i \\neq y\_jy_ineqx_jy\_i \\neq x\_j。你还可以假设通过朋友和群组聊天消息可以从任何一个学生传递给SNS上的任何一个学生。

输出

输出朋友之间通信次数(不包括群组聊天),以及为了实现通信最小化,管理员应该首先把消息告诉给哪位学生的ID,两者之间用一个空格分隔。如果有多个符合上述条件的学生,请输出其中ID最小的学生。

样例输入 1

4 2 1 1
1 2
3
4
3
1 2
2 4
3 4```

### 样例输出 1

```plain
2 1```

### 样例输入 2

```plain
4 1 1 1
2
3
4
4
1 2
1 3
1 4
2 4```

### 样例输出 2

```plain
3 1```

### 样例输入 3

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

### 样例输出 3

```plain
2 3```