#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define Shoyo ios_base::sync_with_stdio(0);cin.tie(NULL);
#define ff first
#define ss second
#define pii pair<ll,ll>
#define all(v) v.begin(), v.end()
#define allr(v) v.rbegin(), v.rend()
#define el "\n"
struct DSU {
vector<ll> parent;
vector<ll> sz;
ll comp=0;
void init(ll n) {
parent.assign(n,0);
sz.assign(n,1);
iota(all(parent),0);
}
DSU(ll n) {
init(n);
}
ll find(ll u) {
if (u==parent[u]) return u;
return parent[u]=find(parent[u]);
}
bool merge(ll u,ll v) {
u=find(u);
v=find(v);
if (u==v) return false;
if (sz[u]>sz[v])swap(u,v);
parent[u]=v;
sz[v]+=sz[u];
return true;
}
};
void solve() {
ll n,q;cin>>n>>q;
vector<array<ll,3>>ad;
ad.reserve(n);
for(ll i=0;i<n-1;i++) {
ll u,v,w;cin>>u>>v>>w;
u--; v--;
ad.push_back({w,u,v});
}
vector<pii>v(q);
vector<ll>ans(q);
for(ll i=0;i<q;i++) {
cin>>v[i].ff;
v[i].ss=i;
}
sort(all(ad));
sort(all(v));
DSU dsu(n);
ll edge=0,j=0;
for(ll i=0;i<q;i++) {
ll x=v[i].ff;
while (j<n-1 and ad[j][0]<=x) {
auto [w,u,v]=ad[j];
edge+=(dsu.sz[u]*dsu.sz[v]);
dsu.merge(u,v);
j++;
}
ans[v[i].ss]=edge;
}
for (ll i=0;i<q;i++) {
cout<<ans[i]<<" ";
}
cout<<endl;
}
int main(){
Shoyo;
ll t = 1;
// if(!(cin >> t)) return 0;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwojZGVmaW5lIFNob3lvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZShOVUxMKTsKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIHBpaSBwYWlyPGxsLGxsPgojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksIHYuZW5kKCkKI2RlZmluZSBhbGxyKHYpIHYucmJlZ2luKCksIHYucmVuZCgpCiNkZWZpbmUgZWwgIlxuIgpzdHJ1Y3QgRFNVIHsKICAgIHZlY3RvcjxsbD4gcGFyZW50OwogICAgdmVjdG9yPGxsPiBzejsKICAgIGxsIGNvbXA9MDsKICAgIHZvaWQgaW5pdChsbCBuKSB7CiAgICAgICAgcGFyZW50LmFzc2lnbihuLDApOwogICAgICAgIHN6LmFzc2lnbihuLDEpOwogICAgICAgIGlvdGEoYWxsKHBhcmVudCksMCk7CiAgICB9CiAgICBEU1UobGwgbikgewogICAgICAgIGluaXQobik7CiAgICB9CiAgICBsbCBmaW5kKGxsIHUpIHsKICAgICAgICBpZiAodT09cGFyZW50W3VdKSByZXR1cm4gdTsKICAgICAgICByZXR1cm4gcGFyZW50W3VdPWZpbmQocGFyZW50W3VdKTsKICAgIH0KICAgIGJvb2wgbWVyZ2UobGwgdSxsbCB2KSB7CiAgICAgICAgdT1maW5kKHUpOwogICAgICAgIHY9ZmluZCh2KTsKICAgICAgICBpZiAodT09dikgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChzelt1XT5zelt2XSlzd2FwKHUsdik7CiAgICAgICAgcGFyZW50W3VdPXY7CiAgICAgICAgc3pbdl0rPXN6W3VdOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9OwoKdm9pZCBzb2x2ZSgpIHsKICAgIGxsIG4scTtjaW4+Pm4+PnE7CiAgIHZlY3RvcjxhcnJheTxsbCwzPj5hZDsKICAgIGFkLnJlc2VydmUobik7CiAgIGZvcihsbCBpPTA7aTxuLTE7aSsrKSB7CiAgICAgICBsbCB1LHYsdztjaW4+PnU+PnY+Pnc7CiAgICAgICB1LS07IHYtLTsKICAgICAgIGFkLnB1c2hfYmFjayh7dyx1LHZ9KTsKICAgfQogICAgdmVjdG9yPHBpaT52KHEpOwogICAgdmVjdG9yPGxsPmFucyhxKTsKICAgIGZvcihsbCBpPTA7aTxxO2krKykgewogICAgICAgIGNpbj4+dltpXS5mZjsKICAgICAgICB2W2ldLnNzPWk7CiAgICB9CiAgICBzb3J0KGFsbChhZCkpOwogICAgc29ydChhbGwodikpOwogICAgRFNVIGRzdShuKTsKICAgIGxsIGVkZ2U9MCxqPTA7CiAgICBmb3IobGwgaT0wO2k8cTtpKyspIHsKICAgICAgICBsbCB4PXZbaV0uZmY7CiAgICAgICAgd2hpbGUgKGo8bi0xIGFuZCBhZFtqXVswXTw9eCkgewogICAgICAgICAgICBhdXRvIFt3LHUsdl09YWRbal07CiAgICAgICAgICAgZWRnZSs9KGRzdS5zelt1XSpkc3Uuc3pbdl0pOwogICAgICAgICAgICBkc3UubWVyZ2UodSx2KTsKICAgICAgICAgICAgaisrOwogICAgICAgIH0KICAgICAgICBhbnNbdltpXS5zc109ZWRnZTsKICAgIH0KCiAgICBmb3IgKGxsIGk9MDtpPHE7aSsrKSB7CiAgICAgICAgY291dDw8YW5zW2ldPDwiICI7CiAgICB9CiAgICBjb3V0PDxlbmRsOwp9CmludCBtYWluKCl7CiAgICBTaG95bzsKICAgIGxsIHQgPSAxOwogICAgLy8gaWYoIShjaW4gPj4gdCkpIHJldHVybiAwOwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==