P25787 [AtCoder] Two Spanning Trees
提高-
题目描述

Problem Statement

You are given an undirected graph G with N vertices and M edges.
G is simple (it has no self-loops and multiple edges) and connected.
For $i = 1, 2, \ldots, M$, the i-th edge is an undirected edge $\lbrace u_i, v_i \rbrace connecting Vertices u_i$ and v_i.
Construct two spanning trees T_1 and T_2 of G that satisfy both of the two conditions below. (T_1 and T_2 do not necessarily have to be different spanning trees.)

  • T_1 satisfies the following.

If we regard T_1 as a rooted tree rooted at Vertex 1, for any edge $\lbrace u, v \rbrace$ of G not contained in T_1, one of u and v is an ancestor of the other in T_1.

  • T_2 satisfies the following.

If we regard T_2 as a rooted tree rooted at Vertex 1, there is no edge $\lbrace u, v \rbrace$ of G not contained in T_2 such that one of u and v is an ancestor of the other in T_2.

We can show that there always exists T_1 and T_2 that satisfy the conditions above.

Input

Input is given from Standard Input in the following format:
N M
u_1 v_1
u_2 v_2
$\vdots$
u_M v_M

Output

Print (2N-2) lines to output T_1 and T_2 in the following format. Specifically,

  • The 1-st through (N-1)-th lines should contain the $(N-1) undirected edges \lbrace x_1, y_1\rbrace, \lbrace x_2, y_2\rbrace, \ldots, \lbrace x_{N-1}, y_{N-1}\rbrace$ contained in T_1, one edge in each line.
  • The N-th through (2N-2)-th lines should contain the $(N-1) undirected edges \lbrace z_1, w_1\rbrace, \lbrace z_2, w_2\rbrace, \ldots, \lbrace z_{N-1}, w_{N-1}\rbrace$ contained in T_2, one edge in each line.

You may print edges in each spanning tree in any order. Also, you may print the endpoints of each edge in any order.
x_1 y_1
x_2 y_2
$\vdots$
x_{N-1} y_{N-1}
z_1 w_1
z_2 w_2
$\vdots$
z_{N-1} w_{N-1}

Constraints

  • $2 \leq N \leq 2 \times 10^5$
  • $N-1 \leq M \leq \min\lbrace 2 \times 10^5, N(N-1)/2 \rbrace$
  • $1 \leq u_i, v_i \leq N$
  • All values in input are integers.
  • The given graph is simple and connected.

Sample Input 1

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

Sample Output 1

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

In the Sample Output above, T_1 is a spanning tree of $G containing 5 edges \lbrace 1, 4 \rbrace, \lbrace 4, 3 \rbrace, \lbrace 5, 3 \rbrace, \lbrace 4, 2 \rbrace, \lbrace 6, 2 \rbrace$. This T_1 satisfies the condition in the Problem Statement. Indeed, for each edge of G not contained in T_1:

  • for edge $\lbrace 5, 1 \rbrace, Vertex 1$ is an ancestor of 5;
  • for edge $\lbrace 1, 2 \rbrace, Vertex 1$ is an ancestor of 2;
  • for edge $\lbrace 1, 6 \rbrace, Vertex 1$ is an ancestor of 6.

T_2 is another spanning tree of $G containing 5 edges \lbrace 1, 5 \rbrace, \lbrace 5, 3 \rbrace, \lbrace 1, 4 \rbrace, \lbrace 2, 1 \rbrace, \lbrace 1, 6 \rbrace$. This T_2 satisfies the condition in the Problem Statement. Indeed, for each edge of G not contained in T_2:

  • for edge $\lbrace 4, 3 \rbrace, Vertex 4$ is not an ancestor of Vertex 3, and vice versa;
  • for edge $\lbrace 2, 6 \rbrace, Vertex 2$ is not an ancestor of Vertex 6, and vice versa;
  • for edge $\lbrace 4, 2 \rbrace, Vertex 4$ is not an ancestor of Vertex 2, and vice versa.

Sample Input 2

4 3
3 1
1 2
1 4

Sample Output 2

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

Tree $T, containing 3 edges \lbrace 1, 2\rbrace, \lbrace 1, 3 \rbrace, \lbrace 1, 4 \rbrace$, is the only spanning tree of G.
Since there are no edges of G that are not contained in T, obviously this T satisfies the conditions for both T_1 and T_2.

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
6 8 5 1 4 3 1 4 3 5 1 2 2 6 1 6 4 2
样例输出
1 4 4 3 5 3 4 2 6 2 1 5 5 3 1 4 2 1 1 6