#P1399E2. Weights Division (hard version)

    ID: 5526 Type: RemoteJudge 3000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>binary searchdfs and similargreedysortingstreestwo pointers*2200

Weights Division (hard version)

No submission language available for this problem.

Description

Easy and hard versions are actually different problems, so we advise you to read both statements carefully.

You are given a weighted rooted tree, vertex 11 is the root of this tree. Also, each edge has its own cost.

A tree is a connected graph without cycles. A rooted tree has a special vertex called the root. A parent of a vertex vv is the last different from vv vertex on the path from the root to the vertex vv. Children of vertex vv are all vertices for which vv is the parent. A vertex is a leaf if it has no children. The weighted tree is such a tree that each edge of this tree has some weight.

The weight of the path is the sum of edges weights on this path. The weight of the path from the vertex to itself is 00.

You can make a sequence of zero or more moves. On each move, you select an edge and divide its weight by 22 rounding down. More formally, during one move, you choose some edge ii and divide its weight by 22 rounding down (wi:=wi2w_i := \left\lfloor\frac{w_i}{2}\right\rfloor).

Each edge ii has an associated cost cic_i which is either 11 or 22 coins. Each move with edge ii costs cic_i coins.

Your task is to find the minimum total cost to make the sum of weights of paths from the root to each leaf at most SS. In other words, if w(i,j)w(i, j) is the weight of the path from the vertex ii to the vertex jj, then you have to make vleavesw(root,v)S\sum\limits_{v \in leaves} w(root, v) \le S, where leavesleaves is the list of all leaves.

You have to answer tt independent test cases.

The first line of the input contains one integer tt (1t21041 \le t \le 2 \cdot 10^4) — the number of test cases. Then tt test cases follow.

The first line of the test case contains two integers nn and SS (2n105;1S10162 \le n \le 10^5; 1 \le S \le 10^{16}) — the number of vertices in the tree and the maximum possible sum of weights you have to obtain. The next n1n-1 lines describe edges of the tree. The edge ii is described as four integers viv_i, uiu_i, wiw_i and cic_i (1vi,uin;1wi106;1ci21 \le v_i, u_i \le n; 1 \le w_i \le 10^6; 1 \le c_i \le 2), where viv_i and uiu_i are vertices the edge ii connects, wiw_i is the weight of this edge and cic_i is the cost of this edge.

It is guaranteed that the sum of nn does not exceed 10510^5 (n105\sum n \le 10^5).

For each test case, print the answer: the minimum total cost required to make the sum of weights paths from the root to each leaf at most SS.

Input

The first line of the input contains one integer tt (1t21041 \le t \le 2 \cdot 10^4) — the number of test cases. Then tt test cases follow.

The first line of the test case contains two integers nn and SS (2n105;1S10162 \le n \le 10^5; 1 \le S \le 10^{16}) — the number of vertices in the tree and the maximum possible sum of weights you have to obtain. The next n1n-1 lines describe edges of the tree. The edge ii is described as four integers viv_i, uiu_i, wiw_i and cic_i (1vi,uin;1wi106;1ci21 \le v_i, u_i \le n; 1 \le w_i \le 10^6; 1 \le c_i \le 2), where viv_i and uiu_i are vertices the edge ii connects, wiw_i is the weight of this edge and cic_i is the cost of this edge.

It is guaranteed that the sum of nn does not exceed 10510^5 (n105\sum n \le 10^5).

Output

For each test case, print the answer: the minimum total cost required to make the sum of weights paths from the root to each leaf at most SS.

Samples

Sample Input 1

4
4 18
2 1 9 2
3 2 4 1
4 1 1 2
3 20
2 1 8 1
3 1 7 2
5 50
1 3 100 1
1 5 10 2
2 3 123 2
5 4 55 1
2 100
1 2 409 2

Sample Output 1

0
0
11
6