MinOr Tree solution codeforces

For Solution
Click Here!
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 n−1n−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.
The first line of the input contains an integer tt (1≤t≤1041≤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 (3≤n≤2⋅105,n−1≤m≤2⋅1053≤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 vivi, uiui and wiwi (1≤vi,ui≤n1≤vi,ui≤n, 1≤wi≤1091≤wi≤109, vi≠uivi≠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 2⋅1052⋅105 and each test case contains a connected graph.
Print tt lines, each of which contains the answer to the corresponding set of input data – the minimum possible spanning tree ority.
input
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
2 10 3

For Solution
Click Here!