#P1521D. Nastia Plays with a Tree

    ID: 2209 Type: RemoteJudge 3000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 9 Uploaded By: Tags>constructive algorithmsdata structuresdfs and similardpdsugreedyimplementationtrees*2500

Nastia Plays with a Tree

Description

Nastia has an unweighted tree with nn vertices and wants to play with it!

The girl will perform the following operation with her tree, as long as she needs:

  1. Remove any existing edge.
  2. Add an edge between any pair of vertices.

What is the minimum number of operations Nastia needs to get a bamboo from a tree? A bamboo is a tree in which no node has a degree greater than 22.

The first line contains a single integer tt (1t100001 \le t \le 10\,000) — the number of test cases.

The first line of each test case contains a single integer nn (2n1052 \le n \le 10^5) — the number of vertices in the tree.

Next n1n - 1 lines of each test cases describe the edges of the tree in form aia_i, bib_i (1ai,bin1 \le a_i, b_i \le n, aibia_i \neq b_i).

It's guaranteed the given graph is a tree and the sum of nn in one test doesn't exceed 21052 \cdot 10^5.

For each test case in the first line print a single integer kk — the minimum number of operations required to obtain a bamboo from the initial tree.

In the next kk lines print 44 integers x1x_1, y1y_1, x2x_2, y2y_2 (1x1,y1,x2,y2n1 \le x_1, y_1, x_2, y_{2} \le n, x1y1x_1 \neq y_1, x2y2x_2 \neq y_2) — this way you remove the edge (x1,y1)(x_1, y_1) and add an undirected edge (x2,y2)(x_2, y_2).

Note that the edge (x1,y1)(x_1, y_1) must be present in the graph at the moment of removing.

Input

The first line contains a single integer tt (1t100001 \le t \le 10\,000) — the number of test cases.

The first line of each test case contains a single integer nn (2n1052 \le n \le 10^5) — the number of vertices in the tree.

Next n1n - 1 lines of each test cases describe the edges of the tree in form aia_i, bib_i (1ai,bin1 \le a_i, b_i \le n, aibia_i \neq b_i).

It's guaranteed the given graph is a tree and the sum of nn in one test doesn't exceed 21052 \cdot 10^5.

Output

For each test case in the first line print a single integer kk — the minimum number of operations required to obtain a bamboo from the initial tree.

In the next kk lines print 44 integers x1x_1, y1y_1, x2x_2, y2y_2 (1x1,y1,x2,y2n1 \le x_1, y_1, x_2, y_{2} \le n, x1y1x_1 \neq y_1, x2y2x_2 \neq y_2) — this way you remove the edge (x1,y1)(x_1, y_1) and add an undirected edge (x2,y2)(x_2, y_2).

Note that the edge (x1,y1)(x_1, y_1) must be present in the graph at the moment of removing.

Sample Input 1

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

Sample Output 1

2
2 5 6 7
3 6 4 5
0

Note

Note the graph can be unconnected after a certain operation.

Consider the first test case of the example:

The red edges are removed, and the green ones are added.