几年前,卑尔根基础设施部制定了一项轻轨网络规划。该网络旨在连接城市中所有的 $n$ 个社区,并铺设 $n-1$ 条铁轨,使得任意两个社区之间都存在路径。规划中的铁轨编号为 $1$ 到 $n-1$。
时光流逝,新一届选举临近,而铁路网络仍停留在纸面上。因此,基础设施部部长(代表一个在政见上存在分歧的党派)决定至少先建设规划中的一部分。他要求 $m$ 位副部长每人选择他们认为应该连接的社区。这将为每位副部长生成一份必要铁轨清单。如果一位副部长认为社区 $a_1, \dots, a_s$ 需要连接,那么对他而言,必要铁轨即为所有位于 $a_i$ 到 $a_j$ 规划路径上的铁轨,其中 $1 \le i < j \le s$。
部长刚刚收到了所有副部长的清单。他决定首先建设那些被至少 $k$ 位副部长请求的铁轨。你的任务是列出这些铁轨。
输入格式
输入的第一行包含三个整数 $n, m$ 和 $k$。接下来的 $n-1$ 行包含规划信息;其中第 $i$ 行包含两个整数 $a_i$ 和 $b_i$ ($1 \le a_i, b_i \le n, a_i \neq b_i$),表示规划中的第 $i$ 条铁轨连接社区 $a_i$ 和 $b_i$。
接下来的 $m$ 行包含副部长选择的社区;其中第 $i$ 行以一个整数 $s_i$ 开头,表示第 $i$ 位副部长选择的社区数量。随后是 $s_i$ 个整数,表示这些社区。所有副部长清单的总长度不超过 $S$,即 $\sum_{i=1}^m s_i \le S$。
数据范围
我们始终有 $2 \le s_i \le n \le 100\,000$,$S \le 100\,000$,以及 $1 \le k \le m \le 50\,000$。对于子任务,输入满足以下进一步限制:
- 子任务 1:8 分,$n \le 10\,000, S \le 2000$
- 子任务 2:15 分,$n \le 10\,000, m \le 2\,000$
- 子任务 3:7 分,每个社区最多是 2 条规划铁轨的端点
- 子任务 4:29 分,$k = m, s_i = 2$
- 子任务 5:16 分,$k = m$
- 子任务 6:25 分,无其他限制
输出格式
输出的第一行应包含一个整数 $r$,表示被至少 $k$ 位副部长请求的铁轨数量。第二行应按升序输出这 $r$ 条铁轨的编号。
说明
第一位副部长认为铁轨 1–3、2–3、3–4 和 4–5 是必要的。第二位副部长认为铁轨 3–4 和 4–6 是必要的,第三位副部长仅认为铁轨 2–3 是必要的。根据至少两位副部长的意见,铁轨 2–3 和 3–4 是必要的。
样例
输入 1
6 3 2 1 3 2 3 3 4 6 4 4 5 4 1 3 2 5 2 6 3 2 3 2
输出 1
2 2 3