#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vll;
#define ordered_set tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>
#define ordered_multiset tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>
#define pb push_back
#define ff first
#define ss second
const int N = 2e5 + 1;
const ll INF = 4000000000000000000LL;
vector<pll> graf[N], odl[N];
vi zb;
ll dyst[N];
int podd[N], odw[N];
struct oba{
ll v1, k1, v2, k2;
};
vector<oba> pref[N], suf[N];
void poddrzewa(int v, int ojc){
podd[v] = 1;
for(pll x : graf[v]){
int u = x.ff;
if(odw[u] || u == ojc) continue;
poddrzewa(u, v);
podd[v] += podd[u];
}
}
int znajdz(int v, int ojc, int r){
for(pll x : graf[v]){
int u = x.ff;
if(odw[u] || u == ojc) continue;
if(podd[u] > r / 2) return znajdz(u, v, r);
}
return v;
}
void dfs_policz(int v, int ojc){
zb.pb(v);
for(pll x : graf[v]){
int u = x.ff;
if(u == ojc || odw[u]) continue;
dyst[u] = dyst[v] + x.ss;
dfs_policz(u, v);
}
}
void decompose(int v){
poddrzewa(v, 0);
int c = znajdz(v, 0, podd[v]);
odw[c] = 1; dyst[c] = 0;
odl[c].pb({0, c});
for(pll x : graf[c]){
int u = x.ff; ll w = x.ss;
if(odw[u]) continue;
dyst[u] = w;
zb.clear();
dfs_policz(u, 0);
for(int y : zb){
odl[c].pb({dyst[y], u});
}
}
sort(odl[c].begin(), odl[c].end());
int m = odl[c].size();
pref[c].resize(m);
suf[c].resize(m);
pref[c][0] = {odl[c][0].ff, odl[c][0].ss, -1LL, -2LL};
for(int i = 1; i < m; i++){
ll d = odl[c][i].ff, k = odl[c][i].ss;
pref[c][i] = pref[c][i - 1];
if(k == pref[c][i].k1){
pref[c][i].v1 = max(pref[c][i].v1, d);
} else {
if(d > pref[c][i].v1){
pref[c][i].v2 = pref[c][i].v1;
pref[c][i].k2 = pref[c][i].k1;
pref[c][i].v1 = d;
pref[c][i].k1 = k;
} else if(d > pref[c][i].v2){
pref[c][i].v2 = d;
pref[c][i].k2 = k;
}
}
}
suf[c][m - 1] = {odl[c][m - 1].ff, odl[c][m - 1].ss, INF, -2LL};
for(int i = m - 2; i >= 0; i--){
ll d = odl[c][i].ff, k = odl[c][i].ss;
suf[c][i] = suf[c][i + 1];
if(k == suf[c][i].k1){
suf[c][i].v1 = min(suf[c][i].v1, d);
} else {
if(d < suf[c][i].v1){
suf[c][i].v2 = suf[c][i].v1;
suf[c][i].k2 = suf[c][i].k1;
suf[c][i].v1 = d;
suf[c][i].k1 = k;
} else if(d < suf[c][i].v2){
suf[c][i].v2 = d;
suf[c][i].k2 = k;
}
}
}
for(pii x : graf[c]){
if(odw[x.ff]) continue;
decompose(x.ff);
}
}
ll mniej(ll x, int n){
ll best = -1;
for(int c = 1; c <= n; c++){
if(odl[c].empty()) continue;
int m = odl[c].size();
int j = m - 1;
for(int i = 0; i < m; i++){
while(j >= 0 && odl[c][i].ff + odl[c][j].ff > x) j--;
if(j < 0) break;
ll kand = odl[c][i].ff, k = odl[c][i].ss;
ll partner_d = -1;
if(k != pref[c][j].k1){
partner_d = pref[c][j].v1;
} else if(pref[c][j].v2 != -1){
partner_d = pref[c][j].v2;
}
if(partner_d != -1){
best = max(kand + partner_d, best);
}
}
}
return best;
}
ll wiecej(ll x, int n){
ll best = INF;
for(int c = 1; c <= n; c++){
if(odl[c].empty()) continue;
int m = odl[c].size();
int j = m - 1;
for(int i = 0; i < m; i++){
while(j > 0 && odl[c][i].ff + odl[c][j - 1].ff >= x) j--;
if(odl[c][i].ff + odl[c][j].ff >= x){
ll kand = odl[c][i].ff, k = odl[c][i].ss;
ll partner_d = INF;
if(k != suf[c][j].k1){
partner_d = suf[c][j].v1;
} else if(suf[c][j].v2 != INF){
partner_d = suf[c][j].v2;
}
if(partner_d != INF){
best = min(kand + partner_d, best);
}
}
}
}
return best;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, q;
if (!(cin >> n >> q)) return 0;
for(int i = 1; i < n; i++){
int a, b; ll c;
cin >> a >> b >> c;
graf[a].pb({b, c});
graf[b].pb({a, c});
}
decompose(1);
vector<pll> przedzialy;
ll p0 = wiecej(1, n);
if(p0 != INF){
ll L = (p0 + 1) / 2;
ll curr = p0;
while(true){
ll p_prime = mniej(2 * curr, n);
if(p_prime > curr){
curr = p_prime;
} else {
przedzialy.pb({L, curr});
ll p_next = wiecej(2 * curr + 1, n);
if(p_next == INF) break;
L = (p_next + 1) / 2;
curr = p_next;
}
}
}
string odp = "";
while(q--){
ll K;
cin >> K;
bool ok = false;
auto it = upper_bound(przedzialy.begin(), przedzialy.end(), make_pair(K, INF));
if(it != przedzialy.begin()){
--it;
if(K >= it->ff && K <= it->ss){
ok = true;
}
}
odp += (ok ? "1" : "0");
}
cout << odp << "\n";
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IHBpaTsKdHlwZWRlZiBwYWlyPGxsLCBsbD4gcGxsOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIHZlY3RvcjxsbD4gdmxsOwojZGVmaW5lIG9yZGVyZWRfc2V0IHRyZWU8aW50LCBudWxsX3R5cGUsIGxlc3M8aW50PiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4KI2RlZmluZSBvcmRlcmVkX211bHRpc2V0IHRyZWU8aW50LCBudWxsX3R5cGUsIGxlc3NfZXF1YWw8aW50PiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4KI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAoKY29uc3QgaW50IE4gPSAyZTUgKyAxOwpjb25zdCBsbCBJTkYgPSA0MDAwMDAwMDAwMDAwMDAwMDAwTEw7Cgp2ZWN0b3I8cGxsPiBncmFmW05dLCBvZGxbTl07CnZpIHpiOwpsbCBkeXN0W05dOwppbnQgcG9kZFtOXSwgb2R3W05dOwoKc3RydWN0IG9iYXsKICAgIGxsIHYxLCBrMSwgdjIsIGsyOwp9OwoKdmVjdG9yPG9iYT4gcHJlZltOXSwgc3VmW05dOwoKdm9pZCBwb2Rkcnpld2EoaW50IHYsIGludCBvamMpewogICAgcG9kZFt2XSA9IDE7CiAgICBmb3IocGxsIHggOiBncmFmW3ZdKXsKICAgICAgICBpbnQgdSA9IHguZmY7CiAgICAgICAgaWYob2R3W3VdIHx8IHUgPT0gb2pjKSBjb250aW51ZTsKICAgICAgICBwb2Rkcnpld2EodSwgdik7CiAgICAgICAgcG9kZFt2XSArPSBwb2RkW3VdOwogICAgfQp9CgppbnQgem5hamR6KGludCB2LCBpbnQgb2pjLCBpbnQgcil7CiAgICBmb3IocGxsIHggOiBncmFmW3ZdKXsKICAgICAgICBpbnQgdSA9IHguZmY7CiAgICAgICAgaWYob2R3W3VdIHx8IHUgPT0gb2pjKSBjb250aW51ZTsKICAgICAgICBpZihwb2RkW3VdID4gciAvIDIpIHJldHVybiB6bmFqZHoodSwgdiwgcik7CiAgICB9CiAgICByZXR1cm4gdjsKfQoKdm9pZCBkZnNfcG9saWN6KGludCB2LCBpbnQgb2pjKXsKICAgIHpiLnBiKHYpOwogICAgZm9yKHBsbCB4IDogZ3JhZlt2XSl7CiAgICAgICAgaW50IHUgPSB4LmZmOwogICAgICAgIGlmKHUgPT0gb2pjIHx8IG9kd1t1XSkgY29udGludWU7CiAgICAgICAgZHlzdFt1XSA9IGR5c3Rbdl0gKyB4LnNzOwogICAgICAgIGRmc19wb2xpY3oodSwgdik7CiAgICB9Cn0KCnZvaWQgZGVjb21wb3NlKGludCB2KXsKICAgIHBvZGRyemV3YSh2LCAwKTsKICAgIGludCBjID0gem5hamR6KHYsIDAsIHBvZGRbdl0pOwogICAgb2R3W2NdID0gMTsgZHlzdFtjXSA9IDA7CiAgICBvZGxbY10ucGIoezAsIGN9KTsKICAgIAogICAgZm9yKHBsbCB4IDogZ3JhZltjXSl7CiAgICAgICAgaW50IHUgPSB4LmZmOyBsbCB3ID0geC5zczsKICAgICAgICBpZihvZHdbdV0pIGNvbnRpbnVlOwogICAgICAgIGR5c3RbdV0gPSB3OwogICAgICAgIHpiLmNsZWFyKCk7CiAgICAgICAgZGZzX3BvbGljeih1LCAwKTsKCiAgICAgICAgZm9yKGludCB5IDogemIpewogICAgICAgICAgICBvZGxbY10ucGIoe2R5c3RbeV0sIHV9KTsKICAgICAgICB9CiAgICB9CgogICAgc29ydChvZGxbY10uYmVnaW4oKSwgb2RsW2NdLmVuZCgpKTsKICAgIGludCBtID0gb2RsW2NdLnNpemUoKTsKICAgIHByZWZbY10ucmVzaXplKG0pOwogICAgc3VmW2NdLnJlc2l6ZShtKTsKICAgIAogICAgcHJlZltjXVswXSA9IHtvZGxbY11bMF0uZmYsIG9kbFtjXVswXS5zcywgLTFMTCwgLTJMTH07CiAgICBmb3IoaW50IGkgPSAxOyBpIDwgbTsgaSsrKXsKICAgICAgICBsbCBkID0gb2RsW2NdW2ldLmZmLCBrID0gb2RsW2NdW2ldLnNzOwogICAgICAgIHByZWZbY11baV0gPSBwcmVmW2NdW2kgLSAxXTsgCiAgICAgICAgCiAgICAgICAgaWYoayA9PSBwcmVmW2NdW2ldLmsxKXsKICAgICAgICAgICAgcHJlZltjXVtpXS52MSA9IG1heChwcmVmW2NdW2ldLnYxLCBkKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZihkID4gcHJlZltjXVtpXS52MSl7CiAgICAgICAgICAgICAgICBwcmVmW2NdW2ldLnYyID0gcHJlZltjXVtpXS52MTsKICAgICAgICAgICAgICAgIHByZWZbY11baV0uazIgPSBwcmVmW2NdW2ldLmsxOwogICAgICAgICAgICAgICAgcHJlZltjXVtpXS52MSA9IGQ7CiAgICAgICAgICAgICAgICBwcmVmW2NdW2ldLmsxID0gazsKICAgICAgICAgICAgfSBlbHNlIGlmKGQgPiBwcmVmW2NdW2ldLnYyKXsKICAgICAgICAgICAgICAgIHByZWZbY11baV0udjIgPSBkOwogICAgICAgICAgICAgICAgcHJlZltjXVtpXS5rMiA9IGs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgc3VmW2NdW20gLSAxXSA9IHtvZGxbY11bbSAtIDFdLmZmLCBvZGxbY11bbSAtIDFdLnNzLCBJTkYsIC0yTEx9OwogICAgZm9yKGludCBpID0gbSAtIDI7IGkgPj0gMDsgaS0tKXsKICAgICAgICBsbCBkID0gb2RsW2NdW2ldLmZmLCBrID0gb2RsW2NdW2ldLnNzOwogICAgICAgIHN1ZltjXVtpXSA9IHN1ZltjXVtpICsgMV07CiAgICAgICAgCiAgICAgICAgaWYoayA9PSBzdWZbY11baV0uazEpewogICAgICAgICAgICBzdWZbY11baV0udjEgPSBtaW4oc3VmW2NdW2ldLnYxLCBkKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZihkIDwgc3VmW2NdW2ldLnYxKXsKICAgICAgICAgICAgICAgIHN1ZltjXVtpXS52MiA9IHN1ZltjXVtpXS52MTsKICAgICAgICAgICAgICAgIHN1ZltjXVtpXS5rMiA9IHN1ZltjXVtpXS5rMTsKICAgICAgICAgICAgICAgIHN1ZltjXVtpXS52MSA9IGQ7CiAgICAgICAgICAgICAgICBzdWZbY11baV0uazEgPSBrOwogICAgICAgICAgICB9IGVsc2UgaWYoZCA8IHN1ZltjXVtpXS52Mil7CiAgICAgICAgICAgICAgICBzdWZbY11baV0udjIgPSBkOwogICAgICAgICAgICAgICAgc3VmW2NdW2ldLmsyID0gazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmb3IocGlpIHggOiBncmFmW2NdKXsKICAgICAgICBpZihvZHdbeC5mZl0pIGNvbnRpbnVlOwogICAgICAgIGRlY29tcG9zZSh4LmZmKTsKICAgIH0KfQoKbGwgbW5pZWoobGwgeCwgaW50IG4pewogICAgbGwgYmVzdCA9IC0xOwogICAgZm9yKGludCBjID0gMTsgYyA8PSBuOyBjKyspewogICAgICAgIGlmKG9kbFtjXS5lbXB0eSgpKSBjb250aW51ZTsKICAgICAgICBpbnQgbSA9IG9kbFtjXS5zaXplKCk7CiAgICAgICAgaW50IGogPSBtIC0gMTsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKXsKICAgICAgICAgICAgd2hpbGUoaiA+PSAwICYmIG9kbFtjXVtpXS5mZiArIG9kbFtjXVtqXS5mZiA+IHgpIGotLTsKICAgICAgICAgICAgaWYoaiA8IDApIGJyZWFrOwoKICAgICAgICAgICAgbGwga2FuZCA9IG9kbFtjXVtpXS5mZiwgayA9IG9kbFtjXVtpXS5zczsKICAgICAgICAgICAgbGwgcGFydG5lcl9kID0gLTE7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZihrICE9IHByZWZbY11bal0uazEpewogICAgICAgICAgICAgICAgcGFydG5lcl9kID0gcHJlZltjXVtqXS52MTsKICAgICAgICAgICAgfSBlbHNlIGlmKHByZWZbY11bal0udjIgIT0gLTEpewogICAgICAgICAgICAgICAgcGFydG5lcl9kID0gcHJlZltjXVtqXS52MjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYocGFydG5lcl9kICE9IC0xKXsKICAgICAgICAgICAgICAgIGJlc3QgPSBtYXgoa2FuZCArIHBhcnRuZXJfZCwgYmVzdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gYmVzdDsKfQoKbGwgd2llY2VqKGxsIHgsIGludCBuKXsKICAgIGxsIGJlc3QgPSBJTkY7CiAgICBmb3IoaW50IGMgPSAxOyBjIDw9IG47IGMrKyl7CiAgICAgICAgaWYob2RsW2NdLmVtcHR5KCkpIGNvbnRpbnVlOwogICAgICAgIGludCBtID0gb2RsW2NdLnNpemUoKTsKICAgICAgICBpbnQgaiA9IG0gLSAxOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBtOyBpKyspewogICAgICAgICAgICB3aGlsZShqID4gMCAmJiBvZGxbY11baV0uZmYgKyBvZGxbY11baiAtIDFdLmZmID49IHgpIGotLTsKICAgICAgICAgICAgaWYob2RsW2NdW2ldLmZmICsgb2RsW2NdW2pdLmZmID49IHgpewogICAgICAgICAgICAgICAgbGwga2FuZCA9IG9kbFtjXVtpXS5mZiwgayA9IG9kbFtjXVtpXS5zczsKICAgICAgICAgICAgICAgIGxsIHBhcnRuZXJfZCA9IElORjsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYoayAhPSBzdWZbY11bal0uazEpewogICAgICAgICAgICAgICAgICAgIHBhcnRuZXJfZCA9IHN1ZltjXVtqXS52MTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZihzdWZbY11bal0udjIgIT0gSU5GKXsKICAgICAgICAgICAgICAgICAgICBwYXJ0bmVyX2QgPSBzdWZbY11bal0udjI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYocGFydG5lcl9kICE9IElORil7CiAgICAgICAgICAgICAgICAgICAgYmVzdCA9IG1pbihrYW5kICsgcGFydG5lcl9kLCBiZXN0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBiZXN0Owp9CgppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CgogICAgaW50IG4sIHE7CiAgICBpZiAoIShjaW4gPj4gbiA+PiBxKSkgcmV0dXJuIDA7CgogICAgZm9yKGludCBpID0gMTsgaSA8IG47IGkrKyl7CiAgICAgICAgaW50IGEsIGI7IGxsIGM7CiAgICAgICAgY2luID4+IGEgPj4gYiA+PiBjOwogICAgICAgIGdyYWZbYV0ucGIoe2IsIGN9KTsgCiAgICAgICAgZ3JhZltiXS5wYih7YSwgY30pOwogICAgfQoKICAgIGRlY29tcG9zZSgxKTsKCiAgICB2ZWN0b3I8cGxsPiBwcnplZHppYWx5OwogICAgbGwgcDAgPSB3aWVjZWooMSwgbik7CgogICAgaWYocDAgIT0gSU5GKXsKICAgICAgICBsbCBMID0gKHAwICsgMSkgLyAyOwogICAgICAgIGxsIGN1cnIgPSBwMDsKCiAgICAgICAgd2hpbGUodHJ1ZSl7CiAgICAgICAgICAgIGxsIHBfcHJpbWUgPSBtbmllaigyICogY3Vyciwgbik7CiAgICAgICAgICAgIGlmKHBfcHJpbWUgPiBjdXJyKXsKICAgICAgICAgICAgICAgIGN1cnIgPSBwX3ByaW1lOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcHJ6ZWR6aWFseS5wYih7TCwgY3Vycn0pOwogICAgICAgICAgICAgICAgbGwgcF9uZXh0ID0gd2llY2VqKDIgKiBjdXJyICsgMSwgbik7CiAgICAgICAgICAgICAgICBpZihwX25leHQgPT0gSU5GKSBicmVhazsKICAgICAgICAgICAgICAgIEwgPSAocF9uZXh0ICsgMSkgLyAyOwogICAgICAgICAgICAgICAgY3VyciA9IHBfbmV4dDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBzdHJpbmcgb2RwID0gIiI7CiAgICB3aGlsZShxLS0pewogICAgICAgIGxsIEs7CiAgICAgICAgY2luID4+IEs7CiAgICAgICAgCiAgICAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgICAgIGF1dG8gaXQgPSB1cHBlcl9ib3VuZChwcnplZHppYWx5LmJlZ2luKCksIHByemVkemlhbHkuZW5kKCksIG1ha2VfcGFpcihLLCBJTkYpKTsKICAgICAgICBpZihpdCAhPSBwcnplZHppYWx5LmJlZ2luKCkpewogICAgICAgICAgICAtLWl0OwogICAgICAgICAgICBpZihLID49IGl0LT5mZiAmJiBLIDw9IGl0LT5zcyl7CiAgICAgICAgICAgICAgICBvayA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgb2RwICs9IChvayA/ICIxIiA6ICIwIik7CiAgICB9CiAgICAKICAgIGNvdXQgPDwgb2RwIDw8ICJcbiI7CgogICAgcmV0dXJuIDA7Cn0K