#416. KD-Graph

KD-Graph

Background

Special for beginners, ^_^

Description

Let’s call a weighted connected undirected graph of n vertices and m edges KD-Graph, if the following conditions fulfill:

  • nn vertices are strictly divided into KK groups, each group contains at least one vertice

  • if vertices pp and q(pq)q ( p ≠ q ) are in the same group, there must be at least one path between pp and qq meet the max value in this path is less than or equal to DD.

  • if vertices pp and q(pq)q ( p ≠ q ) are in different groups, there can’t be any path between pp and qq meet the max value in this path is less than or equal to DD.

You are given a weighted connected undirected graph GG of nn vertices and mm edges and an integer KK.

Your task is find the minimum non-negative DD which can make there is a way to divide the nn vertices into KK groups makes GG satisfy the definition of KD-Graph.Or 1−1 if there is no such DD exist.

Format

Input

The first line contains an integer T(1T5)T (1≤ T ≤5) representing the number of test cases. For each test case , there are three integers n,m,k(2n100000,1m500000,1kn)n,m,k(2≤n≤100000,1≤m≤500000,1≤k≤n) in the first line. Each of the next m lines contains three integers u,vu,v and c(1v,un,vu,1c109)c (1≤v,u≤n,v≠u,1≤c≤10^9) meaning that there is an edge between vertices uu and vv with weight cc.

Output

For each test case print a single integer in a new line.

Samples

2
3 2 2
1 2 3
2 3 5
3 2 2
1 2 3
2 3 3
3
-1