#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e5 + 5;
const long long LOG = 20;
long long n,q;
long long par[MaxN][LOG];
long long mx[MaxN][LOG];
long long d[MaxN];
vector<pair<long long,long long>> vt[MaxN];
pair<long long,long long> pr[MaxN];
void dfs(long long u)
{
for(auto x : vt[u])
{
long long v = x.first;
long long w = x.second;
if(v == par[u][0])
continue;
par[v][0] = u;
mx[v][0] = w;
d[v] = d[u] + 1;
dfs(v);
}
}
void build()
{
for(long long j = 1; j < LOG; j++)
{
for(long long i = 1; i <= n; i++)
{
par[i][j] = par[par[i][j-1]][j-1];
mx[i][j] = max(mx[i][j-1],
mx[par[i][j-1]][j-1]);
}
}
}
long long get_max(long long u, long long anc)
{
long long ans = 0;
long long diff = d[u] - d[anc];
for(long long i = LOG-1; i >= 0; i--)
{
if((diff >> i) & 1)
{
ans = max(ans, mx[u][i]);
u = par[u][i];
}
}
return ans;
}
long long lca(long long u, long long v)
{
if(d[u] < d[v])
swap(u,v);
for(long long i = LOG-1; i >= 0; i--)
{
if(d[par[u][i]] >= d[v])
u = par[u][i];
}
if(u == v)
return u;
for(long long i = LOG-1; i >= 0; i--)
{
if(par[u][i] != par[v][i])
{
u = par[u][i];
v = par[v][i];
}
}
return par[u][0];
}
void input()
{
cin >> n >> q;
for(long long i = 1; i < n; i++)
{
long long u,v,w;
cin >> u >> v >> w;
vt[u].push_back({v,w});
vt[v].push_back({u,w});
}
for(long long i = 1; i <= q; i++)
{
cin >> pr[i].first >> pr[i].second;
}
}
void solve()
{
d[0] = -1;
dfs(1);
build();
for(long long i = 1; i <= q; i++)
{
long long u = pr[i].first;
long long v = pr[i].second;
long long l = lca(u,v);
long long ans1 = get_max(u,l);
long long ans2 = get_max(v,l);
cout << max(ans1,ans2) << '\n';
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbG9uZyBNYXhOID0gMWU1ICsgNTsKY29uc3QgbG9uZyBsb25nIExPRyA9IDIwOwoKbG9uZyBsb25nIG4scTsKbG9uZyBsb25nIHBhcltNYXhOXVtMT0ddOwpsb25nIGxvbmcgbXhbTWF4Tl1bTE9HXTsKbG9uZyBsb25nIGRbTWF4Tl07Cgp2ZWN0b3I8cGFpcjxsb25nIGxvbmcsbG9uZyBsb25nPj4gdnRbTWF4Tl07CnBhaXI8bG9uZyBsb25nLGxvbmcgbG9uZz4gcHJbTWF4Tl07Cgp2b2lkIGRmcyhsb25nIGxvbmcgdSkKewogICAgZm9yKGF1dG8geCA6IHZ0W3VdKQogICAgewogICAgICAgIGxvbmcgbG9uZyB2ID0geC5maXJzdDsKICAgICAgICBsb25nIGxvbmcgdyA9IHguc2Vjb25kOwoKICAgICAgICBpZih2ID09IHBhclt1XVswXSkKICAgICAgICAgICAgY29udGludWU7CgogICAgICAgIHBhclt2XVswXSA9IHU7CiAgICAgICAgbXhbdl1bMF0gPSB3OwogICAgICAgIGRbdl0gPSBkW3VdICsgMTsKCiAgICAgICAgZGZzKHYpOwogICAgfQp9Cgp2b2lkIGJ1aWxkKCkKewogICAgZm9yKGxvbmcgbG9uZyBqID0gMTsgaiA8IExPRzsgaisrKQogICAgewogICAgICAgIGZvcihsb25nIGxvbmcgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgcGFyW2ldW2pdID0gcGFyW3BhcltpXVtqLTFdXVtqLTFdOwoKICAgICAgICAgICAgbXhbaV1bal0gPSBtYXgobXhbaV1bai0xXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgbXhbcGFyW2ldW2otMV1dW2otMV0pOwogICAgICAgIH0KICAgIH0KfQoKbG9uZyBsb25nIGdldF9tYXgobG9uZyBsb25nIHUsIGxvbmcgbG9uZyBhbmMpCnsKICAgIGxvbmcgbG9uZyBhbnMgPSAwOwoKICAgIGxvbmcgbG9uZyBkaWZmID0gZFt1XSAtIGRbYW5jXTsKCiAgICBmb3IobG9uZyBsb25nIGkgPSBMT0ctMTsgaSA+PSAwOyBpLS0pCiAgICB7CiAgICAgICAgaWYoKGRpZmYgPj4gaSkgJiAxKQogICAgICAgIHsKICAgICAgICAgICAgYW5zID0gbWF4KGFucywgbXhbdV1baV0pOwogICAgICAgICAgICB1ID0gcGFyW3VdW2ldOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gYW5zOwp9Cgpsb25nIGxvbmcgbGNhKGxvbmcgbG9uZyB1LCBsb25nIGxvbmcgdikKewogICAgaWYoZFt1XSA8IGRbdl0pCiAgICAgICAgc3dhcCh1LHYpOwoKICAgIGZvcihsb25nIGxvbmcgaSA9IExPRy0xOyBpID49IDA7IGktLSkKICAgIHsKICAgICAgICBpZihkW3Bhclt1XVtpXV0gPj0gZFt2XSkKICAgICAgICAgICAgdSA9IHBhclt1XVtpXTsKICAgIH0KCiAgICBpZih1ID09IHYpCiAgICAgICAgcmV0dXJuIHU7CgogICAgZm9yKGxvbmcgbG9uZyBpID0gTE9HLTE7IGkgPj0gMDsgaS0tKQogICAgewogICAgICAgIGlmKHBhclt1XVtpXSAhPSBwYXJbdl1baV0pCiAgICAgICAgewogICAgICAgICAgICB1ID0gcGFyW3VdW2ldOwogICAgICAgICAgICB2ID0gcGFyW3ZdW2ldOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gcGFyW3VdWzBdOwp9Cgp2b2lkIGlucHV0KCkKewogICAgY2luID4+IG4gPj4gcTsKCiAgICBmb3IobG9uZyBsb25nIGkgPSAxOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGxvbmcgbG9uZyB1LHYsdzsKICAgICAgICBjaW4gPj4gdSA+PiB2ID4+IHc7CgogICAgICAgIHZ0W3VdLnB1c2hfYmFjayh7dix3fSk7CiAgICAgICAgdnRbdl0ucHVzaF9iYWNrKHt1LHd9KTsKICAgIH0KCiAgICBmb3IobG9uZyBsb25nIGkgPSAxOyBpIDw9IHE7IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gcHJbaV0uZmlyc3QgPj4gcHJbaV0uc2Vjb25kOwogICAgfQp9Cgp2b2lkIHNvbHZlKCkKewogICAgZFswXSA9IC0xOwoKICAgIGRmcygxKTsKICAgIGJ1aWxkKCk7CgogICAgZm9yKGxvbmcgbG9uZyBpID0gMTsgaSA8PSBxOyBpKyspCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHUgPSBwcltpXS5maXJzdDsKICAgICAgICBsb25nIGxvbmcgdiA9IHByW2ldLnNlY29uZDsKCiAgICAgICAgbG9uZyBsb25nIGwgPSBsY2EodSx2KTsKCiAgICAgICAgbG9uZyBsb25nIGFuczEgPSBnZXRfbWF4KHUsbCk7CiAgICAgICAgbG9uZyBsb25nIGFuczIgPSBnZXRfbWF4KHYsbCk7CgogICAgICAgIGNvdXQgPDwgbWF4KGFuczEsYW5zMikgPDwgJ1xuJzsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKCiAgICBpbnB1dCgpOwogICAgc29sdmUoKTsKfQ==