• # For Solution

Recently, Vlad has been carried away by spanning trees, so his friends, without hesitation, gave him a connected weighted undirected graph of nn vertices and mm edges for his birthday.

Vlad defined the ority of a spanning tree as the bitwise OR of all its weights, and now he is interested in what is the minimum possible ority that can be achieved by choosing a certain spanning tree. A spanning tree is a connected subgraph of a given graph that does not contain cycles.

In other words, you want to keep n1n−1 edges so that the graph remains connected and the bitwise OR weights of the edges are as small as possible. You have to find the minimum bitwise OR itself.

Input MinOr Tree solution codeforces

The first line of the input contains an integer tt (1t1041≤t≤104) — the number of test cases in the input.

An empty line is written in front of each test case.

This is followed by two numbers nn and mm (3n2105,n1m21053≤n≤2⋅105,n−1≤m≤2⋅105) — the number of vertices and edges of the graph, respectively.

The next mm lines contain the description of the edges. Line ii contains three numbers viviuiui and wiwi (1vi,uin1≤vi,ui≤n1wi1091≤wi≤109viuivi≠ui) — the vertices that the edge connects and its weight.

It is guaranteed that the sum mm and the sum nn over all test cases does not exceed 21052⋅105 and each test case contains a connected graph.

Output MinOr Tree solution codeforces

Print tt lines, each of which contains the answer to the corresponding set of input data – the minimum possible spanning tree ority.

Example

input

Copy
3

3 3
1 2 1
2 3 2
1 3 2

5 7
4 2 7
2 5 8
3 4 2
3 2 1
2 4 2
4 1 2
1 2 2

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


output MinOr Tree solution codeforces

Copy
2
10
3

Note

Graph from the first test case.
Ority of this tree equals to 2 or 2 = 2 and it’s minimal.
Without excluding edge with weight 11 ority is 1 or 2 = 3.