#include <bits/stdc++.h>
#define int long long
#define BIT(i, x) (((x) >> (i)) & 1)
#define task ""
using namespace std;
using ll = long long;
using ld = long double;
const int N = 2e5 + 2;
const ll Inf = 1e16;
int n, m, k;
int x[20];
int dp[N];
ll d[20][N];
vector<pair<int, ll>> nadj[N];
int bonker[20];
void Read()
{
cin >> n >> k;
m = n - 1;
for (int i = 1; i <= m; ++i)
{
int u, v;
ll w;
cin >> u >> v >> w;
nadj[u].push_back({v, w});
nadj[v].push_back({u, w});
}
for (int i = 1; i <= k; ++i)
cin >> bonker[i] >> x[i];
}
bool Check(int v)
{
memset(dp, 0, sizeof dp);
for (int i = 1; i <= n; ++i)
{
int cur = 0;
for (int j = 1; j <= k; ++j)
if (d[j][i] <= v)
cur |= 1 << (j - 1);
++dp[cur];
}
//cout << dp[1] << "\n";
for (int i = 1; i <= k; ++i)
for (int j = 1; j < (1 << k); ++j)
if (BIT(i - 1, j))
dp[j] += dp[j ^ (1 << (i - 1))];
for (int j = 0; j < (1 << k); ++j)
{
ll cap = 0;
for (int i = 0; i < k; ++i)
if (BIT(i, j))
cap += x[i + 1];
//cout << j << ": " << cap << " " << dp[j] << "\n";
if (cap < dp[j])
return false;
}
return true;
}
bool Relax(int son, int par, ll w, ll d[N])
{
if (d[son] > d[par] + w)
{
d[son] = d[par] + w;
return true;
}
return false;
}
void Dijkstra(int x, ll d[N])
{
fill_n(d, N, Inf);
d[x] = 0;
struct Tque
{
int v;
ll w;
Tque() {}
Tque(int v, ll w)
{
this->v = v;
this->w = w;
}
bool operator<(const Tque &a) const
{
return w > a.w;
}
bool Valid(ll d[])
{
return d[v] == w;
}
};
priority_queue<Tque> s;
s.push(Tque(x, 0));
while (s.size())
{
Tque c = s.top();
s.pop();
if (!c.Valid(d))
continue;
for (auto i : nadj[c.v])
if (Relax(i.first, c.v, i.second, d))
s.push(Tque(i.first, d[i.first]));
}
}
void Solve()
{
for (int i = 1; i <= k; ++i)
Dijkstra(bonker[i], d[i]);
ll l = 0, m, h = Inf;
while (l <= h)
{
m = (l + h) / 2;
if (Check(m))
h = m - 1;
else
l = m + 1;
}
cout << l;
}
int32_t main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
if (fopen(task ".INP", "r"))
{
freopen(task ".INP", "r", stdin);
freopen(task ".OUT", "w", stdout);
}
Read();
Solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIEJJVChpLCB4KSAoKCh4KSA+PiAoaSkpICYgMSkKI2RlZmluZSB0YXNrICIiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwp1c2luZyBsZCA9IGxvbmcgZG91YmxlOwoKY29uc3QgaW50IE4gPSAyZTUgKyAyOwpjb25zdCBsbCBJbmYgPSAxZTE2OwppbnQgbiwgbSwgazsKaW50IHhbMjBdOwppbnQgZHBbTl07CmxsIGRbMjBdW05dOwp2ZWN0b3I8cGFpcjxpbnQsIGxsPj4gbmFkaltOXTsKaW50IGJvbmtlclsyMF07Cgp2b2lkIFJlYWQoKQp7CiAgICBjaW4gPj4gbiA+PiBrOwoJbSA9IG4gLSAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbTsgKytpKQogICAgewogICAgICAgIGludCB1LCB2OwogICAgICAgIGxsIHc7CiAgICAgICAgY2luID4+IHUgPj4gdiA+PiB3OwogICAgICAgIG5hZGpbdV0ucHVzaF9iYWNrKHt2LCB3fSk7CiAgICAgICAgbmFkalt2XS5wdXNoX2JhY2soe3UsIHd9KTsKICAgIH0KICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGs7ICsraSkKICAgICAgICBjaW4gPj4gYm9ua2VyW2ldID4+IHhbaV07Cn0KCmJvb2wgQ2hlY2soaW50IHYpCnsKICAgIG1lbXNldChkcCwgMCwgc2l6ZW9mIGRwKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkKICAgIHsKICAgICAgICBpbnQgY3VyID0gMDsKICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8PSBrOyArK2opCiAgICAgICAgICAgIGlmIChkW2pdW2ldIDw9IHYpCiAgICAgICAgICAgICAgICBjdXIgfD0gMSA8PCAoaiAtIDEpOwogICAgICAgICsrZHBbY3VyXTsKICAgIH0KICAgIC8vY291dCA8PCBkcFsxXSA8PCAiXG4iOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gazsgKytpKQogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgKDEgPDwgayk7ICsraikKICAgICAgICAgICAgaWYgKEJJVChpIC0gMSwgaikpCiAgICAgICAgICAgICAgICBkcFtqXSArPSBkcFtqIF4gKDEgPDwgKGkgLSAxKSldOwogICAgZm9yIChpbnQgaiA9IDA7IGogPCAoMSA8PCBrKTsgKytqKQogICAgewogICAgICAgIGxsIGNhcCA9IDA7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrOyArK2kpCiAgICAgICAgICAgIGlmIChCSVQoaSwgaikpCiAgICAgICAgICAgICAgICBjYXAgKz0geFtpICsgMV07CiAgICAgICAgLy9jb3V0IDw8IGogPDwgIjogIiA8PCBjYXAgPDwgIiAiIDw8IGRwW2pdIDw8ICJcbiI7CiAgICAgICAgaWYgKGNhcCA8IGRwW2pdKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQoKYm9vbCBSZWxheChpbnQgc29uLCBpbnQgcGFyLCBsbCB3LCBsbCBkW05dKQp7CiAgICBpZiAoZFtzb25dID4gZFtwYXJdICsgdykKICAgIHsKICAgICAgICBkW3Nvbl0gPSBkW3Bhcl0gKyB3OwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwp9Cgp2b2lkIERpamtzdHJhKGludCB4LCBsbCBkW05dKQp7CiAgICBmaWxsX24oZCwgTiwgSW5mKTsKICAgIGRbeF0gPSAwOwogICAgc3RydWN0IFRxdWUKICAgIHsKICAgICAgICBpbnQgdjsKICAgICAgICBsbCB3OwogICAgICAgIFRxdWUoKSB7fQogICAgICAgIFRxdWUoaW50IHYsIGxsIHcpCiAgICAgICAgewogICAgICAgICAgICB0aGlzLT52ID0gdjsKICAgICAgICAgICAgdGhpcy0+dyA9IHc7CiAgICAgICAgfQogICAgICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFRxdWUgJmEpIGNvbnN0CiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gdyA+IGEudzsKICAgICAgICB9CiAgICAgICAgYm9vbCBWYWxpZChsbCBkW10pCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gZFt2XSA9PSB3OwogICAgICAgIH0KICAgIH07CiAgICBwcmlvcml0eV9xdWV1ZTxUcXVlPiBzOwogICAgcy5wdXNoKFRxdWUoeCwgMCkpOwogICAgd2hpbGUgKHMuc2l6ZSgpKQogICAgewogICAgICAgIFRxdWUgYyA9IHMudG9wKCk7CiAgICAgICAgcy5wb3AoKTsKICAgICAgICBpZiAoIWMuVmFsaWQoZCkpCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIGZvciAoYXV0byBpIDogbmFkaltjLnZdKQogICAgICAgICAgICBpZiAoUmVsYXgoaS5maXJzdCwgYy52LCBpLnNlY29uZCwgZCkpCiAgICAgICAgICAgICAgICBzLnB1c2goVHF1ZShpLmZpcnN0LCBkW2kuZmlyc3RdKSk7CiAgICB9Cn0KCnZvaWQgU29sdmUoKQp7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gazsgKytpKQogICAgICAgIERpamtzdHJhKGJvbmtlcltpXSwgZFtpXSk7CiAgICBsbCBsID0gMCwgbSwgaCA9IEluZjsKICAgIHdoaWxlIChsIDw9IGgpCiAgICB7CiAgICAgICAgbSA9IChsICsgaCkgLyAyOwogICAgICAgIGlmIChDaGVjayhtKSkKICAgICAgICAgICAgaCA9IG0gLSAxOwogICAgICAgIGVsc2UKICAgICAgICAgICAgbCA9IG0gKyAxOwogICAgfQogICAgY291dCA8PCBsOwp9CgppbnQzMl90IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaWYgKGZvcGVuKHRhc2sgIi5JTlAiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4odGFzayAiLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4odGFzayAiLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIFJlYWQoKTsKICAgIFNvbHZlKCk7Cn0=