#include <cmath>
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <set>
#include <map>
#include <list>
#include <time.h>
#include <math.h>
#include <random>
#include <deque>
#include <queue>
#include <cassert>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <bitset>
#include <sstream>
#include <chrono>
#include <cstring>
using namespace std;
typedef long long ll;
#ifdef iq
mt19937 rnd(228);
#else
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
#endif
int main() {
#ifdef iq
freopen("a.in", "r", stdin);
#endif
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
vector <int> ws;
for (int i = 1; i < n; i++) {
int a, b, w;
cin >> a >> b >> w;
a--, b--;
ws.push_back(w);
}
sort(ws.begin(), ws.end());
reverse(ws.begin(), ws.end());
multiset <int> q;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
q.insert(x);
}
int ok = ws[0];
int cost = 0;
for (int it = 0; it < 2; it++) {
if (*q.rbegin() < ok) {
q.erase(q.begin());
cost++;
} else {
q.erase(q.lower_bound(ok));
}
}
ws.erase(ws.begin());
for (int x : ws) {
if (*q.rbegin() >= x) {
q.erase(q.lower_bound(x));
} else {
q.erase(q.begin());
cost++;
}
}
cout << cost << '\n';
}
}
I2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8dGltZS5oPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8cmFuZG9tPgojaW5jbHVkZSA8ZGVxdWU+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPGNhc3NlcnQ+CiNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgojaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8Y2hyb25vPgojaW5jbHVkZSA8Y3N0cmluZz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCiNpZmRlZiBpcQogIG10MTk5Mzcgcm5kKDIyOCk7CiNlbHNlCiAgbXQxOTkzNyBybmQoY2hyb25vOjpoaWdoX3Jlc29sdXRpb25fY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKI2VuZGlmCgppbnQgbWFpbigpIHsKI2lmZGVmIGlxCiAgZnJlb3BlbigiYS5pbiIsICJyIiwgc3RkaW4pOwojZW5kaWYKICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICBjaW4udGllKDApOwogIGludCB0OwogIGNpbiA+PiB0OwogIHdoaWxlICh0LS0pIHsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICB2ZWN0b3IgPGludD4gd3M7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgewogICAgICBpbnQgYSwgYiwgdzsKICAgICAgY2luID4+IGEgPj4gYiA+PiB3OwogICAgICBhLS0sIGItLTsKICAgICAgd3MucHVzaF9iYWNrKHcpOwogICAgfQogICAgc29ydCh3cy5iZWdpbigpLCB3cy5lbmQoKSk7CiAgICByZXZlcnNlKHdzLmJlZ2luKCksIHdzLmVuZCgpKTsKICAgIG11bHRpc2V0IDxpbnQ+IHE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICBpbnQgeDsKICAgICAgY2luID4+IHg7CiAgICAgIHEuaW5zZXJ0KHgpOwogICAgfQogICAgaW50IG9rID0gd3NbMF07CiAgICBpbnQgY29zdCA9IDA7CiAgICBmb3IgKGludCBpdCA9IDA7IGl0IDwgMjsgaXQrKykgewogICAgICBpZiAoKnEucmJlZ2luKCkgPCBvaykgewogICAgICAgIHEuZXJhc2UocS5iZWdpbigpKTsKICAgICAgICBjb3N0Kys7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcS5lcmFzZShxLmxvd2VyX2JvdW5kKG9rKSk7CiAgICAgIH0KICAgIH0KICAgIHdzLmVyYXNlKHdzLmJlZ2luKCkpOwogICAgZm9yIChpbnQgeCA6IHdzKSB7CiAgICAgIGlmICgqcS5yYmVnaW4oKSA+PSB4KSB7CiAgICAgICAgcS5lcmFzZShxLmxvd2VyX2JvdW5kKHgpKTsgCiAgICAgIH0gZWxzZSB7CiAgICAgICAgcS5lcmFzZShxLmJlZ2luKCkpOwogICAgICAgIGNvc3QrKzsKICAgICAgfQogICAgfQogICAgY291dCA8PCBjb3N0IDw8ICdcbic7CiAgfQp9