编程题
### 问题描述 给定一棵由 $n$ 个结点组成的树以及 $m$ 个不重复的无序数对 $(a_1,b_1)$,$(a_2,b_2)$,...,$(a_m,b_m)$,其中 $a_i$ 互不相同,$b_i$ 互不相同,$a_i$,$b_j$ $(1\le i,j\le m)$。小明想知道是否能够选择一条树上的边砍断,使得对于每个$(a_i,b_i)$满足$a_i$和$b_i$不连通,如果可以则输出应该断掉的边的编号(编号按输入顺序从 $1$ 开始),否则输出 $-1$。 ### 输入格式 输入共 $n+m$ 行,第一行为两个正整数 $n$,$m$。后面 $n-1$ 行,每行两个正整数 $x_i$,$y_i$表示第 $i$ 条边的两个端点。后面 $m$ 行,每行两个正整数 $a_i$,$b_i$。 ### 输出格式 一行一个整数,表示答案,如有多个答案,输出编号最大的一个。 ### 样例输入 ``` 6 2 1 2 2 3 4 3 2 5 6 5 3 6 4 5 ``` ### 样例输出 ``` 4 ``` ### 样例说明 断开第 $2$ 条边后形成两个连通块:$\{3,4\}$,$\{1,2,5,6\}$,满足 $3$ 和 $6$ 不连通,$4$ 和 $5$ 不连通。断开第 $4$ 条边后形成两个连通块:$\{1,2,3,4\}$,$\{5,6\}$,同样满足 $3$ 和 $6$ 不连通,$4$ 和 $5$ 不连通。$4$ 编号更大,因此答案为 $4$。 ### 评测用例规模与约定 对于 $30\%$ 的数据,保证 $1