1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<cmath>
5 #include<algorithm>
6 #define l(x) (x&-x)
7 #define int long long
8 using namespace std;
9 int n,m,h[503],t[1010],nx[1010],d[1010],a[152503],b[503][503],eb[503][503],te,t1,t2,tv,t3,v[503],mxk=-1,r[503];
10 void add()
11 {
12 te++;
13 t[te]=t2,nx[te]=h[t1],d[te]=t3;
14 h[t1]=te;
15 te++;
16 t[te]=t1,nx[te]=h[t2],d[te]=t3;
17 h[t2]=te;
18 return;
19 }
20 void s(int x)
21 {
22 r[x]=1;
23 b[x][1]=eb[x][1]=0;
24 v[x]=1;
25 for(int i=h[x];i;i=nx[i])
26 {
27 if(v[t[i]]) continue;
28 s(t[i]);
29 for(int j=r[t[i]]+r[x];j>=1;j--)
30 {
31 for(int k=r[x];k>=1;k--)
32 {
33 //all:j this way:j-k used:k
34 eb[x][j]=min(eb[x][j],min(b[x][k]+eb[t[i]][j-k]+d[i],eb[x][k]+b[t[i]][j-k]+d[i]*2));
35 }
36 for(int k=r[x];k>=1;k--)
37 {
38 //all:j this way:j-k used:k
39 b[x][j]=min(b[x][j],b[t[i]][j-k]+b[x][k]+d[i]*2);
40 }
41 }
42 r[x]+=r[t[i]];
43 }
44 return;
45 }
46 signed main()
47 {
48 // freopen("cave3.in","r",stdin);
49 // freopen("cave31.out","w",stdout);
50 scanf("%lld",&n);
51 memset(h,0,sizeof(h));
52 te=0;
53 for(int i=1;i<n;i++)
54 {
55 scanf("%lld%lld%lld",&t1,&t2,&t3);
56 add();
57 }
58 memset(v,0,sizeof(v));
59 memset(b,127,sizeof(b));
60 memset(eb,127,sizeof(eb));
61 scanf("%d",&m);
62 for(int i=1;i<=m;i++)
63 {
64 scanf("%lld",&a[i]);
65 }
66 s(1);
67 for(int i=1;i<=m;i++)
68 {
69 printf("%lld\n",((upper_bound(eb[1]+1,eb[1]+n+1,a[i]))-eb[1]-1ll));
70 }
71 return 0;
72 }