#include <bits/stdc++.h>
using namespace std;
 
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define endl "\n"
#define int long long

const int N = 1e5 + 5;

int n, x;
int a[N], sum[N];
vector<int> g[N];

int dfs(int u, int par)
{
	int sum = a[u];
	for(auto &it:g[u])
	{
		if(it == par)
			continue;
		sum += dfs(it, u);
	}
	sum = max(sum, -x);
	return sum;
}

int32_t main()
{
	IOS;
	int t;
	cin>>t;
	while(t--)
	{	
		memset(sum, 0, sizeof(sum));
		cin>>n>>x;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			g[i].clear();
		}
		for(int i=1;i<=n-1;i++)
		{
			int u, v;
			cin>>u>>v;
			g[u].push_back(v);
			g[v].push_back(u);
		}
		int ans = dfs(1, 0);
		cout<<ans<<endl;
	}
	return 0;
}