#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
int arr[100005],size[100005];
long long res[100005];
std::vector< vector< pair<int,int> > > v(100005);
void initialize(int n)
{
for(int i=1;i<=n;i++)
{
size[i]=1;
arr[i]=i;
}
}
int root(int i)
{
while( arr[i] != i)
{
arr[i]=arr[arr[i]];
i=arr[i];
}
return i;
}
bool find(int a,int b)
{
if(root(a)==root(b))
return true;
return false;
}
void weighted_union(int a,int b)
{
int ra=root(a);
int rb=root(b);
if(ra==rb)
return;
if(size[ra]<size[rb])
{
arr[ra]=arr[rb];
size[rb]+=size[ra];
size[ra]=0;
}
else
{
arr[rb]=arr[ra];
size[ra]+=size[rb];
size[rb]=0;
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n,q;
cin>>n>>q;
for(int i=1;i<n;i++)
{
int a,b,c;
cin>>a>>b>>c;
int lim=ceil((double)sqrt(c));
for(int i=1;i<=lim;i++)
{
if(c%i ==0)
{
if(c/i == i)
{
v[i].push_back(make_pair(a,b));
}
else
{
v[i].push_back(make_pair(a,b));
v[c/i].push_back(make_pair(a,b));
}
}
}
}
initialize(n);
for(int d=1;d<=100000;d++)
{
for(int i=0;i<v[d].size();i++)
{
weighted_union(v[d][i].first,v[d][i].second);
}
unordered_set<int> s;
for(int i=0;i<v[d].size();i++)
{
s.insert(root(v[d][i].first));
s.insert(root(v[d][i].second));
}
long long ans=0;
for(auto it=s.begin();it != s.end();it++)
{
long long co = size[*it];
ans+= (co*(co-1))/2;
}
res[d]=ans;
for(int i=0;i<v[d].size();i++)
{
arr[v[d][i].first]=v[d][i].first;
size[v[d][i].first]=1;
arr[v[d][i].second]=v[d][i].second;
size[v[d][i].second]=1;
}
}
while(q--)
{
int d;
cin>>d;
cout<<res[d]<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZW5kbCAnXG4nCmludCBhcnJbMTAwMDA1XSxzaXplWzEwMDAwNV07CmxvbmcgbG9uZyByZXNbMTAwMDA1XTsKc3RkOjp2ZWN0b3I8IHZlY3RvcjwgcGFpcjxpbnQsaW50PiA+ID4gdigxMDAwMDUpOwp2b2lkIGluaXRpYWxpemUoaW50IG4pCnsKCWZvcihpbnQgaT0xO2k8PW47aSsrKQoJewoJCXNpemVbaV09MTsKCQlhcnJbaV09aTsKCX0KfQppbnQgcm9vdChpbnQgaSkKewoJd2hpbGUoIGFycltpXSAhPSBpKQoJewoJCWFycltpXT1hcnJbYXJyW2ldXTsKCQlpPWFycltpXTsKCX0KCXJldHVybiBpOwp9CmJvb2wgZmluZChpbnQgYSxpbnQgYikKewoJaWYocm9vdChhKT09cm9vdChiKSkKCQlyZXR1cm4gdHJ1ZTsKCXJldHVybiBmYWxzZTsKfQp2b2lkIHdlaWdodGVkX3VuaW9uKGludCBhLGludCBiKQp7CglpbnQgcmE9cm9vdChhKTsKCWludCByYj1yb290KGIpOwoJaWYocmE9PXJiKQoJCXJldHVybjsKCWlmKHNpemVbcmFdPHNpemVbcmJdKQoJewoJCWFycltyYV09YXJyW3JiXTsKCQlzaXplW3JiXSs9c2l6ZVtyYV07CgkJc2l6ZVtyYV09MDsKCX0KCWVsc2UKCXsKCQlhcnJbcmJdPWFycltyYV07CgkJc2l6ZVtyYV0rPXNpemVbcmJdOwoJCXNpemVbcmJdPTA7Cgl9Cn0KaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgIAlpbnQgbixxOwogICAgY2luPj5uPj5xOwogICAgZm9yKGludCBpPTE7aTxuO2krKykKICAgIHsKICAgICAgaW50IGEsYixjOwogICAgICBjaW4+PmE+PmI+PmM7CiAgICAgIGludCBsaW09Y2VpbCgoZG91YmxlKXNxcnQoYykpOwogICAgICBmb3IoaW50IGk9MTtpPD1saW07aSsrKQogICAgICB7CiAgICAgICAgaWYoYyVpID09MCkKICAgICAgICB7CiAgICAgICAgICBpZihjL2kgPT0gaSkKICAgICAgICAgIHsKICAgICAgICAgICAgdltpXS5wdXNoX2JhY2sobWFrZV9wYWlyKGEsYikpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZQogICAgICAgICAgewogICAgICAgICAgICB2W2ldLnB1c2hfYmFjayhtYWtlX3BhaXIoYSxiKSk7CiAgICAgICAgICAgIHZbYy9pXS5wdXNoX2JhY2sobWFrZV9wYWlyKGEsYikpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQoKICAgIH0KICAgIGluaXRpYWxpemUobik7CiAgICBmb3IoaW50IGQ9MTtkPD0xMDAwMDA7ZCsrKQogICAgewogICAgICBmb3IoaW50IGk9MDtpPHZbZF0uc2l6ZSgpO2krKykKICAgICAgewogICAgICAgIHdlaWdodGVkX3VuaW9uKHZbZF1baV0uZmlyc3QsdltkXVtpXS5zZWNvbmQpOwogICAgICB9CiAgICAgIHVub3JkZXJlZF9zZXQ8aW50PiBzOwogICAgICBmb3IoaW50IGk9MDtpPHZbZF0uc2l6ZSgpO2krKykKICAgICAgewogICAgICAgICAgcy5pbnNlcnQocm9vdCh2W2RdW2ldLmZpcnN0KSk7CiAgICAgICAgICBzLmluc2VydChyb290KHZbZF1baV0uc2Vjb25kKSk7CiAgICAgIH0KICAgICAgbG9uZyBsb25nIGFucz0wOwogICAgICBmb3IoYXV0byBpdD1zLmJlZ2luKCk7aXQgIT0gcy5lbmQoKTtpdCsrKQogICAgICB7CiAgICAgICAgbG9uZyBsb25nIGNvID0gc2l6ZVsqaXRdOwogICAgICAgIGFucys9IChjbyooY28tMSkpLzI7CiAgICAgIH0KICAgICAgcmVzW2RdPWFuczsKICAgICAgZm9yKGludCBpPTA7aTx2W2RdLnNpemUoKTtpKyspCiAgICAgIHsKICAgICAgICAKICAgICAgICBhcnJbdltkXVtpXS5maXJzdF09dltkXVtpXS5maXJzdDsKICAgICAgICBzaXplW3ZbZF1baV0uZmlyc3RdPTE7CiAgICAgIAogICAgICAgIGFyclt2W2RdW2ldLnNlY29uZF09dltkXVtpXS5zZWNvbmQ7CiAgICAgICAgc2l6ZVt2W2RdW2ldLnNlY29uZF09MTsgIAogICAgICB9ICAKICAgIH0KICAgIHdoaWxlKHEtLSkKICAgIHsKICAgICAgaW50IGQ7CiAgICAgIGNpbj4+ZDsKICAgICAgY291dDw8cmVzW2RdPDxlbmRsOwogICAgICAKICAgIH0KICAgIHJldHVybiAwOwp9Cg==