#include <bits/stdc++.h>
#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define REP(I, N) for (int I = 0; I < (N); ++I)
#define REPP(I, A, B) for (int I = (A); I < (B); ++I)
#define RREP(I, N) for (int I= (N)-1; I>=0; --I)
#define RREPP(I, A, B) for(int I = (B)-1; I>=A; --I)
#define CASET int ___T, case_n = 1; scanf("%d ", &___T); while (___T-- > 0)
#define MP make_pair
#define PB push_back
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define LEN(X) strlen(X)
#define F first
#define S second
#define debug(A) REP(i, A.size()) cerr << A[i] << ' '; cerr << '\n'
using namespace std;
typedef pair<int, int> ii;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef long long lld;
typedef unsigned long long ulld;
typedef pair<lld, lld> plld;
typedef vector<lld> vlld;
typedef vector<vlld> vvlld;
typedef long double ld;
typedef vector<ld> vld;
typedef vector<vld> vvld;
const int MAXN=2015;
const int INF=987654321;
vvi linked; vi deleted, dfs;
int T, N, M, Si[MAXN], Vi[MAXN], par[MAXN], size[MAXN], dp[MAXN][MAXN];
void df(int root){
struct StackRes{ int here, iter; };
stack<StackRes> st; st.push({root, 0});
vi(1, root).swap(dfs); size[root]=1; par[root]=-1;
while(!st.empty()){
StackRes &top=st.top();
if(SZ(linked[top.here]) == top.iter){
if(par[top.here]!=-1) size[par[top.here]]+=size[top.here];
st.pop(); continue;
}
int there=linked[top.here][top.iter++];
if(deleted[there] || there==par[top.here]) continue;
st.push( { there, 0 });
par[there] = top.here; size[there] = 1; dfs.PB(there);
}
}
int solve(int root){
df(root); int sn = SZ(dfs), ret = 0;
for(int i=0;i<=M;i++) dp[sn][i] = -1; dp[sn][0]=0;
for(int i=sn-1;i>=0;i--){
int here = dfs[i];
for(int j=0;j<=M;j++){
dp[i][j]=dp[i+size[here]][j];
if(j>=Si[here] && dp[i+1][j-Si[here]] != -1)
dp[i][j]=max(dp[i][j], dp[i+1][j-Si[here]]+Vi[here]);
if(i==0) ret=max(ret, dp[i][j]);
}
} return ret;
}
int dnc(int root){
df(root); int sn = SZ(dfs), mini=INF, minp;
// if(sn==1) return (Si[root]<=M ? Vi[root] : 0);
for(auto it : dfs) if( size[it] >= sn/2 && mini > size[it] ) mini=size[it], minp=it;
int ret = solve(minp); deleted[minp]=1;
for(auto it : linked[minp]) if(!deleted[it]) ret=max(ret, dnc(it));
return ret;
}
int main(){
int a,b;
ios::sync_with_stdio(false);
cin>>T;
while(T--){
cin>>N>>M;
vvi(N).swap(linked); vi(N).swap(deleted);
for(int i=0;i<N;i++) cin>>Si[i];
for(int i=0;i<N;i++) cin>>Vi[i];
for(int i=0;i<N-1;i++){
cin>>a>>b; a--;b--;
linked[a].PB(b); linked[b].PB(a);
}
cout<<dnc(0)<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgU1ooWCkgKChpbnQpKFgpLnNpemUoKSkKI2RlZmluZSBBTEwoWCkgKFgpLmJlZ2luKCksIChYKS5lbmQoKQojZGVmaW5lIFJFUChJLCBOKSBmb3IgKGludCBJID0gMDsgSSA8IChOKTsgKytJKQojZGVmaW5lIFJFUFAoSSwgQSwgQikgZm9yIChpbnQgSSA9IChBKTsgSSA8IChCKTsgKytJKQojZGVmaW5lIFJSRVAoSSwgTikgZm9yIChpbnQgST0gKE4pLTE7IEk+PTA7IC0tSSkKI2RlZmluZSBSUkVQUChJLCBBLCBCKSBmb3IoaW50IEkgPSAoQiktMTsgST49QTsgLS1JKQojZGVmaW5lIENBU0VUIGludCBfX19ULCBjYXNlX24gPSAxOyBzY2FuZigiJWQgIiwgJl9fX1QpOyB3aGlsZSAoX19fVC0tID4gMCkKI2RlZmluZSBNUCBtYWtlX3BhaXIKI2RlZmluZSBQQiBwdXNoX2JhY2sKI2RlZmluZSBNUzAoWCkgbWVtc2V0KChYKSwgMCwgc2l6ZW9mKChYKSkpCiNkZWZpbmUgTVMxKFgpIG1lbXNldCgoWCksIC0xLCBzaXplb2YoKFgpKSkKI2RlZmluZSBMRU4oWCkgc3RybGVuKFgpCiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiNkZWZpbmUgZGVidWcoQSkgUkVQKGksIEEuc2l6ZSgpKSBjZXJyIDw8IEFbaV0gPDwgJyAnOyBjZXJyIDw8ICdcbicKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIHZlY3Rvcjx2aT4gdnZpOwogCnR5cGVkZWYgbG9uZyBsb25nIGxsZDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsZDsKdHlwZWRlZiBwYWlyPGxsZCwgbGxkPiBwbGxkOwp0eXBlZGVmIHZlY3RvcjxsbGQ+IHZsbGQ7CnR5cGVkZWYgdmVjdG9yPHZsbGQ+IHZ2bGxkOwogCnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgdmVjdG9yPGxkPiB2bGQ7CnR5cGVkZWYgdmVjdG9yPHZsZD4gdnZsZDsKY29uc3QgaW50IE1BWE49MjAxNTsKY29uc3QgaW50IElORj05ODc2NTQzMjE7CnZ2aSBsaW5rZWQ7IHZpIGRlbGV0ZWQsIGRmczsKaW50IFQsIE4sIE0sIFNpW01BWE5dLCBWaVtNQVhOXSwgcGFyW01BWE5dLCBzaXplW01BWE5dLCBkcFtNQVhOXVtNQVhOXTsKdm9pZCBkZihpbnQgcm9vdCl7CiAgICBzdHJ1Y3QgU3RhY2tSZXN7IGludCBoZXJlLCBpdGVyOyB9OwogICAgc3RhY2s8U3RhY2tSZXM+IHN0OyBzdC5wdXNoKHtyb290LCAwfSk7CiAgICB2aSgxLCByb290KS5zd2FwKGRmcyk7IHNpemVbcm9vdF09MTsgcGFyW3Jvb3RdPS0xOwogICAgd2hpbGUoIXN0LmVtcHR5KCkpewogICAgICAgIFN0YWNrUmVzICZ0b3A9c3QudG9wKCk7CiAgICAgICAgaWYoU1oobGlua2VkW3RvcC5oZXJlXSkgPT0gdG9wLml0ZXIpewogICAgICAgICAgICBpZihwYXJbdG9wLmhlcmVdIT0tMSkgc2l6ZVtwYXJbdG9wLmhlcmVdXSs9c2l6ZVt0b3AuaGVyZV07CiAgICAgICAgICAgIHN0LnBvcCgpOyBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaW50IHRoZXJlPWxpbmtlZFt0b3AuaGVyZV1bdG9wLml0ZXIrK107CiAgICAgICAgaWYoZGVsZXRlZFt0aGVyZV0gfHwgdGhlcmU9PXBhclt0b3AuaGVyZV0pIGNvbnRpbnVlOwogICAgICAgIHN0LnB1c2goIHsgdGhlcmUsIDAgfSk7CiAgICAgICAgcGFyW3RoZXJlXSA9IHRvcC5oZXJlOyBzaXplW3RoZXJlXSA9IDE7IGRmcy5QQih0aGVyZSk7CiAgICB9Cn0KaW50IHNvbHZlKGludCByb290KXsKICAgIGRmKHJvb3QpOyBpbnQgc24gPSBTWihkZnMpLCByZXQgPSAwOwogICAgZm9yKGludCBpPTA7aTw9TTtpKyspIGRwW3NuXVtpXSA9IC0xOyBkcFtzbl1bMF09MDsKICAgIGZvcihpbnQgaT1zbi0xO2k+PTA7aS0tKXsKICAgICAgICBpbnQgaGVyZSA9IGRmc1tpXTsKICAgICAgICBmb3IoaW50IGo9MDtqPD1NO2orKyl7CiAgICAgICAgICAgIGRwW2ldW2pdPWRwW2krc2l6ZVtoZXJlXV1bal07CiAgICAgICAgICAgIGlmKGo+PVNpW2hlcmVdICYmIGRwW2krMV1bai1TaVtoZXJlXV0gIT0gLTEpCiAgICAgICAgICAgICAgICBkcFtpXVtqXT1tYXgoZHBbaV1bal0sIGRwW2krMV1bai1TaVtoZXJlXV0rVmlbaGVyZV0pOwogICAgICAgICAgICBpZihpPT0wKSByZXQ9bWF4KHJldCwgZHBbaV1bal0pOwogICAgICAgIH0KICAgIH0gcmV0dXJuIHJldDsKfQppbnQgZG5jKGludCByb290KXsKICAgIGRmKHJvb3QpOyBpbnQgc24gPSBTWihkZnMpLCBtaW5pPUlORiwgbWlucDsKICAgIC8vIGlmKHNuPT0xKSByZXR1cm4gKFNpW3Jvb3RdPD1NID8gVmlbcm9vdF0gOiAwKTsKICAgIGZvcihhdXRvIGl0IDogZGZzKSBpZiggc2l6ZVtpdF0gPj0gc24vMiAmJiBtaW5pID4gc2l6ZVtpdF0gKSBtaW5pPXNpemVbaXRdLCBtaW5wPWl0OwogICAgaW50IHJldCA9IHNvbHZlKG1pbnApOyBkZWxldGVkW21pbnBdPTE7CiAgICBmb3IoYXV0byBpdCA6IGxpbmtlZFttaW5wXSkgaWYoIWRlbGV0ZWRbaXRdKSByZXQ9bWF4KHJldCwgZG5jKGl0KSk7CiAgICByZXR1cm4gcmV0Owp9CmludCBtYWluKCl7CiAgICBpbnQgYSxiOwogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luPj5UOwogICAgd2hpbGUoVC0tKXsKICAgICAgICBjaW4+Pk4+Pk07CiAgICAgICAgdnZpKE4pLnN3YXAobGlua2VkKTsgdmkoTikuc3dhcChkZWxldGVkKTsKICAgICAgICBmb3IoaW50IGk9MDtpPE47aSsrKSBjaW4+PlNpW2ldOwogICAgICAgIGZvcihpbnQgaT0wO2k8TjtpKyspIGNpbj4+VmlbaV07CiAgICAgICAgZm9yKGludCBpPTA7aTxOLTE7aSsrKXsKICAgICAgICAgICAgY2luPj5hPj5iOyBhLS07Yi0tOwogICAgICAgICAgICBsaW5rZWRbYV0uUEIoYik7IGxpbmtlZFtiXS5QQihhKTsKICAgICAgICB9CiAgICAgICAgY291dDw8ZG5jKDApPDwiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0=