#D10577. Distance Matching
Distance Matching
Distance Matching
You are given an integer k and a tree T with n nodes (n is even).
Let dist(u, v) be the number of edges on the shortest path from node u to node v in T.
Let us define a undirected weighted complete graph G = (V, E) as following:
- V = \{x ∣ 1 ≤ x ≤ n } i.e. the set of integers from 1 to n
- E = {(u, v, w) ∣ 1 ≤ u, v ≤ n, u ≠ v, w = dist(u, v) } i.e. there is an edge between every pair of distinct nodes, the weight being the distance between their respective nodes in T
Your task is simple, find a perfect matching in G with total edge weight k (1 ≤ k ≤ n^2).
Input
The first line of input contains two integers n, k (2 ≤ n ≤ 100 000, n is even, 1 ≤ k ≤ n^2): number of nodes and the total edge weight of the perfect matching you need to find.
The i-th of the following n - 1 lines contains two integers v_i, u_i (1 ≤ v_i, u_i ≤ n) denoting an edge between v_i and u_i in T. It is guaranteed that the given graph is a tree.
Output
If there are no matchings that satisfy the above condition, output "NO" (without quotes) on a single line.
Otherwise, you should output "YES" (without quotes) on the first line of output.
You should then output n/2 lines, the i-th line containing p_i, q_i (1 ≤ p_i, q_i ≤ n): the i-th pair of the matching.
Examples
Input
4 2 1 2 2 3 3 4
Output
YES 2 1 3 4
Input
4 4 1 2 2 3 3 4
Output
YES 3 1 2 4
Note
A tree is a connected acyclic undirected graph.
A matching is set of pairwise non-adjacent edges, none of which are loops; that is, no two edges share a common vertex.
A perfect matching is a matching which matches all vertices of the graph; that is, every vertex of the graph is incident to exactly one edge of the matching.
inputFormat
Input
The first line of input contains two integers n, k (2 ≤ n ≤ 100 000, n is even, 1 ≤ k ≤ n^2): number of nodes and the total edge weight of the perfect matching you need to find.
The i-th of the following n - 1 lines contains two integers v_i, u_i (1 ≤ v_i, u_i ≤ n) denoting an edge between v_i and u_i in T. It is guaranteed that the given graph is a tree.
outputFormat
Output
If there are no matchings that satisfy the above condition, output "NO" (without quotes) on a single line.
Otherwise, you should output "YES" (without quotes) on the first line of output.
You should then output n/2 lines, the i-th line containing p_i, q_i (1 ≤ p_i, q_i ≤ n): the i-th pair of the matching.
Examples
Input
4 2 1 2 2 3 3 4
Output
YES 2 1 3 4
Input
4 4 1 2 2 3 3 4
Output
YES 3 1 2 4
Note
A tree is a connected acyclic undirected graph.
A matching is set of pairwise non-adjacent edges, none of which are loops; that is, no two edges share a common vertex.
A perfect matching is a matching which matches all vertices of the graph; that is, every vertex of the graph is incident to exactly one edge of the matching.
样例
4 2
1 2
2 3
3 4
YES
1 2
3 4
</p>