#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF = 1e18;
struct Line {
ll m, b;
int id; // Lưu chỉ số q để check cửa sổ trượt
ll eval(ll x) { return m * x + b; }
};
// Kiểm tra đường l2 có vô dụng giữa l1 và l3 không
bool is_bad(Line l1, Line l2, Line l3) {
// (b2-b1)/(m1-m2) >= (b3-b2)/(m2-m3)
return (__int128)(l2.b - l1.b) * (l2.m - l3.m) >= (__int128)(l3.b - l2.b) * (l1.m - l2.m);
}
int n, s;
struct Info { int Q, W; ll C; } a[5005];
vector<int> adj[5005];
int pre[5005], sz[5005], timer = 0;
ll dp[5005][5005];
void dfs(int u, int p) {
pre[++timer] = u; sz[u] = 1;
for (int v : adj[u]) if (v != p) { dfs(v, u); sz[u] += sz[v]; }
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> n >> s;
for (int i = 1; i <= n; i++) cin >> a[i].Q >> a[i].W >> a[i].C;
for (int i = 1; i < n; i++) {
int u, v; cin >> u >> v;
adj[u].push_back(v); adj[v].push_back(u);
}
dfs(1, 0);
for (int i = 1; i <= n + 1; i++) fill(dp[i], dp[i] + s + 1, INF);
dp[1][0] = 0;
for (int i = 1; i <= n; i++) {
int u = pre[i];
int W = a[u].W, Q = a[u].Q; ll C = a[u].C;
// Nhánh 1: Không chọn u (nhảy qua cây con)
int skip = i + sz[u];
for (int j = 0; j <= s; j++) dp[skip][j] = min(dp[skip][j], dp[i][j]);
// Nhánh 2: Chọn u (CHT theo từng số dư r)
for (int r = 0; r < W; r++) {
deque<Line> dq;
for (int p = 0; p * W + r <= s; p++) {
// 1. Thêm đường thẳng q = p-1 vào CHT (vì k >= 1)
int q = p - 1;
if (q >= 0 && dp[i][q * W + r] != INF) {
Line cur = {-2LL * q * C, dp[i][q * W + r] + 1LL * q * q * C, q};
while (dq.size() >= 2 && is_bad(dq[dq.size() - 2], dq.back(), cur)) dq.pop_back();
dq.push_back(cur);
}
// 2. Loại bỏ đường thẳng cũ (q < p - Q)
while (!dq.empty() && dq.front().id < p - Q) dq.pop_front();
// 3. Truy vấn min tại x = p
if (!dq.empty()) {
while (dq.size() >= 2 && dq[0].eval(p) >= dq[1].eval(p)) dq.pop_front();
dp[i + 1][p * W + r] = min(dp[i + 1][p * W + r], dq.front().eval(p) + 1LL * p * p * C);
}
}
}
}
if (dp[n + 1][s] >= INF) cout << -1;
else cout << dp[n + 1][s];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKY29uc3QgbGwgSU5GID0gMWUxODsKCnN0cnVjdCBMaW5lIHsKICAgIGxsIG0sIGI7CiAgICBpbnQgaWQ7IC8vIEzGsHUgY2jhu4kgc+G7kSBxIMSR4buDIGNoZWNrIGPhu61hIHPhu5UgdHLGsOG7o3QKICAgIGxsIGV2YWwobGwgeCkgeyByZXR1cm4gbSAqIHggKyBiOyB9Cn07CgovLyBLaeG7g20gdHJhIMSRxrDhu51uZyBsMiBjw7MgdsO0IGThu6VuZyBnaeG7r2EgbDEgdsOgIGwzIGtow7RuZwpib29sIGlzX2JhZChMaW5lIGwxLCBMaW5lIGwyLCBMaW5lIGwzKSB7CiAgICAvLyAoYjItYjEpLyhtMS1tMikgPj0gKGIzLWIyKS8obTItbTMpCiAgICByZXR1cm4gKF9faW50MTI4KShsMi5iIC0gbDEuYikgKiAobDIubSAtIGwzLm0pID49IChfX2ludDEyOCkobDMuYiAtIGwyLmIpICogKGwxLm0gLSBsMi5tKTsKfQoKaW50IG4sIHM7CnN0cnVjdCBJbmZvIHsgaW50IFEsIFc7IGxsIEM7IH0gYVs1MDA1XTsKdmVjdG9yPGludD4gYWRqWzUwMDVdOwppbnQgcHJlWzUwMDVdLCBzels1MDA1XSwgdGltZXIgPSAwOwpsbCBkcFs1MDA1XVs1MDA1XTsKCnZvaWQgZGZzKGludCB1LCBpbnQgcCkgewogICAgcHJlWysrdGltZXJdID0gdTsgc3pbdV0gPSAxOwogICAgZm9yIChpbnQgdiA6IGFkalt1XSkgaWYgKHYgIT0gcCkgeyBkZnModiwgdSk7IHN6W3VdICs9IHN6W3ZdOyB9Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKICAgIGNpbiA+PiBuID4+IHM7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBhW2ldLlEgPj4gYVtpXS5XID4+IGFbaV0uQzsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaW50IHUsIHY7IGNpbiA+PiB1ID4+IHY7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsgYWRqW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KICAgIGRmcygxLCAwKTsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuICsgMTsgaSsrKSBmaWxsKGRwW2ldLCBkcFtpXSArIHMgKyAxLCBJTkYpOwogICAgZHBbMV1bMF0gPSAwOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGludCB1ID0gcHJlW2ldOwogICAgICAgIGludCBXID0gYVt1XS5XLCBRID0gYVt1XS5ROyBsbCBDID0gYVt1XS5DOwoKICAgICAgICAvLyBOaMOhbmggMTogS2jDtG5nIGNo4buNbiB1IChuaOG6o3kgcXVhIGPDonkgY29uKQogICAgICAgIGludCBza2lwID0gaSArIHN6W3VdOwogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IHM7IGorKykgZHBbc2tpcF1bal0gPSBtaW4oZHBbc2tpcF1bal0sIGRwW2ldW2pdKTsKCiAgICAgICAgLy8gTmjDoW5oIDI6IENo4buNbiB1IChDSFQgdGhlbyB04burbmcgc+G7kSBkxrAgcikKICAgICAgICBmb3IgKGludCByID0gMDsgciA8IFc7IHIrKykgewogICAgICAgICAgICBkZXF1ZTxMaW5lPiBkcTsKICAgICAgICAgICAgZm9yIChpbnQgcCA9IDA7IHAgKiBXICsgciA8PSBzOyBwKyspIHsKICAgICAgICAgICAgICAgIC8vIDEuIFRow6ptIMSRxrDhu51uZyB0aOG6s25nIHEgPSBwLTEgdsOgbyBDSFQgKHbDrCBrID49IDEpCiAgICAgICAgICAgICAgICBpbnQgcSA9IHAgLSAxOwogICAgICAgICAgICAgICAgaWYgKHEgPj0gMCAmJiBkcFtpXVtxICogVyArIHJdICE9IElORikgewogICAgICAgICAgICAgICAgICAgIExpbmUgY3VyID0gey0yTEwgKiBxICogQywgZHBbaV1bcSAqIFcgKyByXSArIDFMTCAqIHEgKiBxICogQywgcX07CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGRxLnNpemUoKSA+PSAyICYmIGlzX2JhZChkcVtkcS5zaXplKCkgLSAyXSwgZHEuYmFjaygpLCBjdXIpKSBkcS5wb3BfYmFjaygpOwogICAgICAgICAgICAgICAgICAgIGRxLnB1c2hfYmFjayhjdXIpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIDIuIExv4bqhaSBi4buPIMSRxrDhu51uZyB0aOG6s25nIGPFqSAocSA8IHAgLSBRKQogICAgICAgICAgICAgICAgd2hpbGUgKCFkcS5lbXB0eSgpICYmIGRxLmZyb250KCkuaWQgPCBwIC0gUSkgZHEucG9wX2Zyb250KCk7CgogICAgICAgICAgICAgICAgLy8gMy4gVHJ1eSB24bqlbiBtaW4gdOG6oWkgeCA9IHAKICAgICAgICAgICAgICAgIGlmICghZHEuZW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgIHdoaWxlIChkcS5zaXplKCkgPj0gMiAmJiBkcVswXS5ldmFsKHApID49IGRxWzFdLmV2YWwocCkpIGRxLnBvcF9mcm9udCgpOwogICAgICAgICAgICAgICAgICAgIGRwW2kgKyAxXVtwICogVyArIHJdID0gbWluKGRwW2kgKyAxXVtwICogVyArIHJdLCBkcS5mcm9udCgpLmV2YWwocCkgKyAxTEwgKiBwICogcCAqIEMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmIChkcFtuICsgMV1bc10gPj0gSU5GKSBjb3V0IDw8IC0xOwogICAgZWxzZSBjb3V0IDw8IGRwW24gKyAxXVtzXTsKICAgIHJldHVybiAwOwp9