#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=2e5+5;
#define pb push_back
#define ff first
#define ss second
#define pii pair<ll,ll>
#define piii pair<ll,pii>

ll par[N];

ll root(ll x)
{
	while(par[x]!=x)
	{
		par[x]=par[par[x]];
		x=par[x];
	}
return x;
}

void Union(ll a,ll b)
{
	ll ra=root(a);
	ll rb=root(b);
	par[ra]=rb;
}

int main()
{
	int t;
	cin >> t;
	while(t--)
	{
		ll n,m,k,i,x,y,w,ans=0;
		cin >> n >> m >> k;
		vector<piii>edg;
		for(i=0;i<=n;i++)
			par[i]=i;
		for(i=0;i<m;i++)
		{
			cin >> x >> y >> w;
			edg.pb({w,{x,y}});
		}
		sort(edg.begin(),edg.end());
		for(i=0;i<m;i++)
		{
			w=edg[i].ff;
			x=edg[i].ss.ff;
			y=edg[i].ss.ss;
			if(root(x)!=root(y))
			{
				Union(x,y);
				if(w>k)
					ans+=w-k;
			}
		}
		if(ans==0)
		{
			ans=1e15;
			for(i=0;i<m;i++)
			{
				ans=min(ans,0ll+abs(edg[i].ff-k));
			}
		}
		cout << ans <<"\n";
	}
return 0;	
}




