/* Author: Ramandeep singh
panjab university, chandigarh
3rd sem
The_hawk_returns
Lets target expert on codeforces
1.think of related algorithm don't sit quiet starring at the problem
2.Don't look at the leaderboard until you are done with the problems
:) MAY THE FORCE BE WITH YOU :)
*/
#include <bits/stdc++.h>
using namespace std;
#define watch(x) cout<<(#x)<<"="<<(x)<<'\n'
#define mset(d,val) memset(d,val,sizeof(d))
#define setp(x) cout<<fixed<<setprecision(x)
#define loop(i,a,b) for(int i=(a);i<(b);i++)
#define hunt(i,a,b) for(int i=(a);i<=(b);i++)
#define lp(i,a,b) for(int i = a; i >= b; i--)
#define rep(i,n) for(int i = 0; i < n; i++)
#define int long long int
#define boost ios_base::sync_with_stdio(false); cin.tie(NULL);
#define pb push_back
#define f first
#define s second
#define pqueue priority_queue
#define fbo find_by_order
#define ook order_of_key
#define ll long long
#define ii pair<int,int>
#define vi vector<int>
#define vii vector<ii>
#define ld long double
#define rd(n) cin >> n
#define out(n) cout << n <<endl
#define all(x) begin(x),end(x)
void YES(){cout<<"YES\n";} void NO(){cout<<"NO\n";}
ll Bexp(ll a,int b){ ll ret=1; for (;b;a=a*a,b>>=1) if (b&1) ret=ret*a; return ret; }
ll gcd(ll A , ll B)
{
if(B == 0)return A;
return gcd(B , A%B);
}
ll min(ll a , ll b){return a > b ? b : a;}
ll max(ll a , ll b){return a > b ? a : b;}
#define MOD 1000000007
struct edge{
int a;
int b;
int w;
};
edge arr[1000011];
int par[100001];
bool comp(edge a , edge b)
{
if(a.a < b.b)
return true;
return false;
}
int find(int a)
{
if(par[a] == -1)
return a;
return par[a] = find(par[a]);
}
void merge(int a , int b)
{
par[a] = b;
}
bool ok(int n)
{
int x = find(1);
int y = find(n);
if(x == y)
return true;
false;
}
signed main()
{
boost
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t , n , m;
cin >> t;
while(t--)
{
cin >> n >> m;
for(int i = 1; i <= n; i++)
par[i] = -1;
memset(arr , 0 , sizeof arr);
for(int i = 0; i < m; i++)
{
cin >> arr[i].a >> arr[i].b >> arr[i].w;
}
sort(arr , arr+m ,comp);
//apply krushkal's algorithm ..
bool bul =true;
for(int i = 0; i < m; i++)
{
int a = find(arr[i].a);
int b = find(arr[i].b);
if(a == b)
continue;
merge(a,b);
if(ok(n))
{
cout << arr[i].w << "\n";
bul = true;
break;
}
}
if(!bul)
cout << -1 << endl;
}
}
LyogQXV0aG9yOiBSYW1hbmRlZXAgc2luZ2gKIHBhbmphYiB1bml2ZXJzaXR5LCBjaGFuZGlnYXJoCiAzcmQgc2VtCiBUaGVfaGF3a19yZXR1cm5zCiBMZXRzIHRhcmdldCBleHBlcnQgb24gY29kZWZvcmNlcyAKIDEudGhpbmsgb2YgcmVsYXRlZCBhbGdvcml0aG0gZG9uJ3Qgc2l0IHF1aWV0IHN0YXJyaW5nIGF0IHRoZSBwcm9ibGVtCiAyLkRvbid0IGxvb2sgYXQgdGhlIGxlYWRlcmJvYXJkIHVudGlsIHlvdSBhcmUgZG9uZSB3aXRoIHRoZSBwcm9ibGVtcwogCiAgOikgTUFZIFRIRSBGT1JDRSBCRSBXSVRIIFlPVSAgOikKICAKICovCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSB3YXRjaCh4KSAgICAgICAgICAgY291dDw8KCN4KTw8Ij0iPDwoeCk8PCdcbicKI2RlZmluZSBtc2V0KGQsdmFsKSAgICAgICAgIG1lbXNldChkLHZhbCxzaXplb2YoZCkpCiNkZWZpbmUgc2V0cCh4KSAgICAgICAgICAgICBjb3V0PDxmaXhlZDw8c2V0cHJlY2lzaW9uKHgpCiNkZWZpbmUgbG9vcChpLGEsYikgICAgICAgICBmb3IoaW50IGk9KGEpO2k8KGIpO2krKykKI2RlZmluZSBodW50KGksYSxiKSAgICAgICAgIGZvcihpbnQgaT0oYSk7aTw9KGIpO2krKykKI2RlZmluZSBscChpLGEsYikgICAgICAgICAgIGZvcihpbnQgaSA9IGE7IGkgPj0gYjsgaS0tKQojZGVmaW5lIHJlcChpLG4pICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKI2RlZmluZSBpbnQgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpbnQgCiNkZWZpbmUgYm9vc3QgICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7CiNkZWZpbmUgcGIgICAgICAgICAgICAgICAgICBwdXNoX2JhY2sKI2RlZmluZSBmICAgICAgICAgICAgICAgICAgIGZpcnN0CiNkZWZpbmUgcyAgICAgICAgICAgICAgICAgICBzZWNvbmQKI2RlZmluZSBwcXVldWUgICAgICAgICAgICAgIHByaW9yaXR5X3F1ZXVlCiNkZWZpbmUgZmJvICAgICAgICAgICAgICAgICBmaW5kX2J5X29yZGVyCiNkZWZpbmUgb29rICAgICAgICAgICAgICAgICBvcmRlcl9vZl9rZXkKI2RlZmluZSBsbCAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZwojZGVmaW5lIGlpICAgICAgICAgICAgICAgICAgcGFpcjxpbnQsaW50PgojZGVmaW5lIHZpICAgICAgICAgICAgICAgICAgdmVjdG9yPGludD4KI2RlZmluZSB2aWkgICAgICAgICAgICAgICAgIHZlY3RvcjxpaT4KI2RlZmluZSBsZCAgICAgICAgICAgICAgICAgIGxvbmcgZG91YmxlCiNkZWZpbmUgcmQobikgICAgICAgICAgICAgIGNpbiA+PiBuICAKI2RlZmluZSBvdXQobikgICAgICAgICAgICAgY291dCA8PCBuIDw8ZW5kbCAgCiNkZWZpbmUgYWxsKHgpICAgICAgICAgICAgYmVnaW4oeCksZW5kKHgpCnZvaWQgWUVTKCl7Y291dDw8IllFU1xuIjt9IHZvaWQgTk8oKXtjb3V0PDwiTk9cbiI7fQpsbCBCZXhwKGxsIGEsaW50IGIpeyBsbCByZXQ9MTsgZm9yICg7YjthPWEqYSxiPj49MSkgaWYgKGImMSkgcmV0PXJldCphOyByZXR1cm4gcmV0OyB9CmxsIGdjZChsbCBBICwgbGwgQikKewoJaWYoQiA9PSAwKXJldHVybiBBOwoJcmV0dXJuIGdjZChCICwgQSVCKTsKfQpsbCBtaW4obGwgYSAsIGxsIGIpe3JldHVybiBhID4gYiA/IGIgOiBhO30KbGwgbWF4KGxsIGEgLCBsbCBiKXtyZXR1cm4gYSA+IGIgPyBhIDogYjt9CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKCnN0cnVjdCBlZGdlewoJaW50IGE7CglpbnQgYjsKCWludCB3Owp9OwoKZWRnZSBhcnJbMTAwMDAxMV07CmludCBwYXJbMTAwMDAxXTsKCmJvb2wgY29tcChlZGdlIGEgLCBlZGdlIGIpCnsKCWlmKGEuYSA8IGIuYikKCQlyZXR1cm4gdHJ1ZTsKCglyZXR1cm4gZmFsc2U7Cn0KCmludCBmaW5kKGludCBhKQp7CglpZihwYXJbYV0gPT0gLTEpCgkJcmV0dXJuIGE7CgoJcmV0dXJuIHBhclthXSA9IGZpbmQocGFyW2FdKTsKfQoKdm9pZCBtZXJnZShpbnQgYSAsIGludCBiKQp7CglwYXJbYV0gPSBiOwp9Cgpib29sIG9rKGludCBuKQp7CglpbnQgeCA9IGZpbmQoMSk7CglpbnQgeSA9IGZpbmQobik7CgoJaWYoeCA9PSB5KQoJCXJldHVybiB0cnVlOwoJZmFsc2U7Cn0Kc2lnbmVkIG1haW4oKQp7CiAgIGJvb3N0CgogICAjaWZuZGVmIE9OTElORV9KVURHRQoJZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CglmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAjZW5kaWYKIAoKICAgIGludCB0ICwgbiAsIG07CgogICAgY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAJY2luID4+IG4gPj4gbTsKCiAgICAJZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICAJCXBhcltpXSA9IC0xOwoKICAgIAltZW1zZXQoYXJyICwgMCAsIHNpemVvZiBhcnIpOwoKICAgIAlmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKQogICAgCXsKICAgIAkJY2luID4+IGFycltpXS5hID4+IGFycltpXS5iID4+IGFycltpXS53OwogICAgCX0KCiAgICAJc29ydChhcnIgLCBhcnIrbSAsY29tcCk7CgogICAgCS8vYXBwbHkga3J1c2hrYWwncyBhbGdvcml0aG0gLi4gCgogICAgICAgIGJvb2wgYnVsID10cnVlOwoKICAgIAlmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKQogICAgCXsKICAgIAkJaW50IGEgPSBmaW5kKGFycltpXS5hKTsKICAgIAkJaW50IGIgPSBmaW5kKGFycltpXS5iKTsKCiAgICAJCWlmKGEgPT0gYikKICAgIAkJCWNvbnRpbnVlOwogICAgCQltZXJnZShhLGIpOwoKICAgIAkJaWYob2sobikpCiAgICAJCXsKICAgIAkJCWNvdXQgPDwgYXJyW2ldLncgPDwgIlxuIjsKICAgIAkJCWJ1bCA9IHRydWU7CiAgICAJCQlicmVhazsKICAgIAkJfQoKICAgIAl9CgogICAgCWlmKCFidWwpCiAgICAJCWNvdXQgPDwgLTEgPDwgZW5kbDsKCgoKICAgIH0KfQ==