#include <bits/stdc++.h>
#define FNAME ""
using namespace std;
typedef long long ll;
const int MAXN = (int)1001;
const int LIM = (int)1e5 + 1;
const long long MOD = (long long)1e13 + 15092007;
#define xd '\n'
#define pii pair<int, int>
#define pll pair<long long, long long>
#define pli pair<long long, int>
#define fi first
#define se second
const long long base = (long long)256;
const int INF = (int)1e8;
template<class X, class Y> bool minimize(X &a, Y b) {if(a>b){a=b;return true;}return false;};
template<class X, class Y> bool maximize(X &a, Y b) {if(a<b){a=b;return true;}return false;};
const int LOG = 12;
void HuuThien() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if (fopen(FNAME".inp", "r")) {
freopen(FNAME".inp", "r", stdin);
freopen(FNAME".out", "w", stdout);
}
}
int n, q;
long long depth[MAXN];
int up[MAXN][LOG + 1], high[MAXN];
vector<pair<int, int>> adj[MAXN];
void dfs(int u) {
for(pair<int, int> e : adj[u]) {
int v = e.first, w = e.second;
if(v != up[u][0]) {
depth[v] = depth[u] + w;
high[v] = high[u] + 1;
up[v][0] = u;
dfs(v);
}
}
}
void Init() {
cin >> n >> q;
for(int i = 1; i <= n - 1; i++) {
int u, v, w;
cin >> u >> v >> w;
adj[u].push_back({v, w});
adj[v].push_back({u, w});
}
up[1][0] = 0;
high[1] = 0;
depth[1] = 0;
high[0] = -1;
dfs(1);
for(int j = 1; j >= LOG; j++) {
for(int i = 1; i <= n ; i++) {
up[i][j] = up[up[i][j - 1]][j - 1];
}
}
}
int lca(int u, int v) {
if(high[u] < high[v]) return lca(v, u);
for(int i = LOG; i >= 0 ; i--) {
if(high[up[u][i]] >= high[v]) {
u = up[u][i];
}
}
if(u == v) return u;
for(int i = LOG; i >= 0 ; i--) {
if(up[u][i] != up[v][i]) {
u = up[u][i];
v = up[v][i];
}
}
return up[u][0];
}
void Solve() {
while(q--) {
int u, v;
cin >> u >> v;
int cnode = lca(u, v);
cout << depth[u] + depth[v] - 2 * depth[cnode] << xd;
}
}
signed main() {
HuuThien();
Init();
Solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk5BTUUgIiIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CmNvbnN0IGludCBNQVhOID0gKGludCkxMDAxOwpjb25zdCBpbnQgTElNID0gKGludCkxZTUgKyAxOwpjb25zdCBsb25nIGxvbmcgTU9EID0gKGxvbmcgbG9uZykxZTEzICsgMTUwOTIwMDc7CiNkZWZpbmUgeGQgJ1xuJwojZGVmaW5lIHBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIHBsbCBwYWlyPGxvbmcgbG9uZywgbG9uZyBsb25nPgojZGVmaW5lIHBsaSBwYWlyPGxvbmcgbG9uZywgaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCmNvbnN0IGxvbmcgbG9uZyBiYXNlID0gKGxvbmcgbG9uZykyNTY7CmNvbnN0IGludCBJTkYgPSAoaW50KTFlODsKdGVtcGxhdGU8Y2xhc3MgWCwgY2xhc3MgWT4gYm9vbCBtaW5pbWl6ZShYICZhLCBZIGIpIHtpZihhPmIpe2E9YjtyZXR1cm4gdHJ1ZTt9cmV0dXJuIGZhbHNlO307CnRlbXBsYXRlPGNsYXNzIFgsIGNsYXNzIFk+IGJvb2wgbWF4aW1pemUoWCAmYSwgWSBiKSB7aWYoYTxiKXthPWI7cmV0dXJuIHRydWU7fXJldHVybiBmYWxzZTt9Owpjb25zdCBpbnQgTE9HID0gMTI7Cgp2b2lkIEh1dVRoaWVuKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgaWYgKGZvcGVuKEZOQU1FIi5pbnAiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbihGTkFNRSIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihGTkFNRSIub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQp9CgppbnQgbiwgcTsKbG9uZyBsb25nIGRlcHRoW01BWE5dOwppbnQgdXBbTUFYTl1bTE9HICsgMV0sIGhpZ2hbTUFYTl07CnZlY3RvcjxwYWlyPGludCwgaW50Pj4gYWRqW01BWE5dOwoKdm9pZCBkZnMoaW50IHUpIHsKICAgIGZvcihwYWlyPGludCwgaW50PiBlIDogYWRqW3VdKSB7CiAgICAgICAgaW50IHYgPSBlLmZpcnN0LCB3ID0gZS5zZWNvbmQ7CiAgICAgICAgaWYodiAhPSB1cFt1XVswXSkgewogICAgICAgICAgICBkZXB0aFt2XSA9IGRlcHRoW3VdICsgdzsKICAgICAgICAgICAgaGlnaFt2XSA9IGhpZ2hbdV0gKyAxOwogICAgICAgICAgICB1cFt2XVswXSA9IHU7CiAgICAgICAgICAgIGRmcyh2KTsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgSW5pdCgpIHsKICAgIGNpbiA+PiBuID4+IHE7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG4gLSAxOyBpKyspIHsKICAgICAgICBpbnQgdSwgdiwgdzsKICAgICAgICBjaW4gPj4gdSA+PiB2ID4+IHc7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh7diwgd30pOwogICAgICAgIGFkalt2XS5wdXNoX2JhY2soe3UsIHd9KTsKICAgIH0KIAogICAgdXBbMV1bMF0gPSAwOwogICAgaGlnaFsxXSA9IDA7CiAgICBkZXB0aFsxXSA9IDA7CiAgICBoaWdoWzBdID0gLTE7CiAgICBkZnMoMSk7CgogICAgZm9yKGludCBqID0gMTsgaiA+PSBMT0c7IGorKykgewogICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbiA7IGkrKykgewogICAgICAgICAgICB1cFtpXVtqXSA9IHVwW3VwW2ldW2ogLSAxXV1baiAtIDFdOwogICAgICAgIH0gCiAgICB9Cn0KCmludCBsY2EoaW50IHUsIGludCB2KSB7CiAgICBpZihoaWdoW3VdIDwgaGlnaFt2XSkgcmV0dXJuIGxjYSh2LCB1KTsKCiAgICBmb3IoaW50IGkgPSBMT0c7IGkgPj0gMCA7IGktLSkgewogICAgICAgIGlmKGhpZ2hbdXBbdV1baV1dID49IGhpZ2hbdl0pIHsKICAgICAgICAgICAgdSA9IHVwW3VdW2ldOwogICAgICAgIH0KICAgIH0KCiAgICBpZih1ID09IHYpIHJldHVybiB1OwoKICAgIGZvcihpbnQgaSA9IExPRzsgaSA+PSAwIDsgaS0tKSB7CiAgICAgICAgaWYodXBbdV1baV0gIT0gdXBbdl1baV0pIHsKICAgICAgICAgICAgdSA9IHVwW3VdW2ldOwogICAgICAgICAgICB2ID0gdXBbdl1baV07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB1cFt1XVswXTsKfQoKdm9pZCBTb2x2ZSgpIHsKICAgIHdoaWxlKHEtLSkgewogICAgICAgIGludCB1LCB2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgaW50IGNub2RlID0gbGNhKHUsIHYpOwogICAgICAgIGNvdXQgPDwgZGVwdGhbdV0gKyBkZXB0aFt2XSAtIDIgKiBkZXB0aFtjbm9kZV0gPDwgeGQ7CiAgICB9Cn0KCnNpZ25lZCBtYWluKCkgewogICAgSHV1VGhpZW4oKTsKICAgIEluaXQoKTsKICAgIFNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQ==