题目描述
给定N−1个1,2,...,N的子集。设第i个集合为Ei。
从每个集合Ei中选择两个不同的元素ui和vi,构建一个N个顶点和N−1条边的图T,其中顶点集为1,2,..,N,边集为(u1,v1),(u2,v2),...,(uN−1,vN−1)。请确定是否可以通过正确选择ui和vi使得T成为一棵树。如果可以,另外找到一个满足条件的(u1,v1),(u2,v2),...,(uN−1,vN−1)实例,使得T实际上是一棵树。
约束条件
- 2≤N≤105
- Ei是1,2,..,N的子集。
- ∣Ei∣≥2
- ∣Ei∣的总和最多为2×105。
输入
输入以如下格式从标准输入给出:
N
c1 w1,1 w1,2 w1,3 ... w1,c1
:
cN−1 wN−1,1 wN−1,2 wN−1,3 ... wN−1,cN−1
这里,ci代表Ei中元素的个数,wi,1,...,wi,ci是ci个元素。其中,2≤ci≤N,1≤wi,j≤N,且wi,j=wi,k (1≤j<k≤ci)。
输出
如果T不能是一棵树,则输出-1
;否则,按照以下格式输出满足条件的(ui,vi)的选择:
u1 v1
:
uN−1 vN−1
样例输入 1
5
2 1 2
3 1 2 3
3 3 4 5
2 4 5
样例输出 1
1 2
1 3
3 4
4 5
样例输入 2
6
3 1 2 3
3 2 3 4
3 1 3 4
3 1 2 4
3 4 5 6
样例输出 2
-1
样例输入 3
10
5 1 2 3 4 5
5 2 3 4 5 6
5 3 4 5 6 7
5 4 5 6 7 8
5 5 6 7 8 9
5 6 7 8 9 10
5 7 8 9 10 1
5 8 9 10 1 2
5 9 10 1 2 3
样例输出 3
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10