#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
const int INF = 987654321;
vector<pair<int, int>> trees[1001];
int N, M;
int calcDist(int start, int dest){
int dist[1001];
for(int i=1;i<=N;i++) dist[i] = INF;
priority_queue<pair<int, int>> pq;
pq.push(make_pair(0, start));
dist[start] = 0;
while(!pq.empty()){
int currentDist = -pq.top().first;
int current = pq.top().second;
cout<<current<<" ";
pq.pop();
for(int i=0;i<trees[current].size();i++){
int nextDist = trees[current][i].first + currentDist;
int next = trees[current][i].second;
if(dist[next] > nextDist){
dist[next] = nextDist;
pq.push(make_pair(-nextDist, next));
}
}
}
return dist[dest];
}
int main() {
cin>>N>>M;
for(int i=1;i<=N-1;i++){
int node1, node2, cost;
cin>>node1>>node2>>cost;
trees[node1].push_back(make_pair(cost, node2));
trees[node2].push_back(make_pair(cost, node1));
}
for(int i=0;i<M;i++){
int from, to;
cin>>from>>to;
cout<<calcDist(from, to)<<'\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPHF1ZXVlPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IElORiA9IDk4NzY1NDMyMTsKdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiB0cmVlc1sxMDAxXTsKaW50IE4sIE07CgppbnQgY2FsY0Rpc3QoaW50IHN0YXJ0LCBpbnQgZGVzdCl7CglpbnQgZGlzdFsxMDAxXTsKCWZvcihpbnQgaT0xO2k8PU47aSsrKSBkaXN0W2ldID0gSU5GOwoJcHJpb3JpdHlfcXVldWU8cGFpcjxpbnQsIGludD4+IHBxOwoJcHEucHVzaChtYWtlX3BhaXIoMCwgc3RhcnQpKTsKCWRpc3Rbc3RhcnRdID0gMDsKCQoJd2hpbGUoIXBxLmVtcHR5KCkpewoJCWludCBjdXJyZW50RGlzdCA9IC1wcS50b3AoKS5maXJzdDsKCQlpbnQgY3VycmVudCA9IHBxLnRvcCgpLnNlY29uZDsKCQljb3V0PDxjdXJyZW50PDwiICI7CgkJcHEucG9wKCk7CgkJCgkJZm9yKGludCBpPTA7aTx0cmVlc1tjdXJyZW50XS5zaXplKCk7aSsrKXsKCQkJaW50IG5leHREaXN0ID0gdHJlZXNbY3VycmVudF1baV0uZmlyc3QgKyBjdXJyZW50RGlzdDsKCQkJaW50IG5leHQgPSB0cmVlc1tjdXJyZW50XVtpXS5zZWNvbmQ7CgoJCQlpZihkaXN0W25leHRdID4gbmV4dERpc3QpewoJCQkJZGlzdFtuZXh0XSA9IG5leHREaXN0OwoJCQkJcHEucHVzaChtYWtlX3BhaXIoLW5leHREaXN0LCBuZXh0KSk7CgkJCX0KCQl9Cgl9CgkKCXJldHVybiBkaXN0W2Rlc3RdOwp9CgppbnQgbWFpbigpIHsKCgljaW4+Pk4+Pk07CgkKCWZvcihpbnQgaT0xO2k8PU4tMTtpKyspewoJCWludCBub2RlMSwgbm9kZTIsIGNvc3Q7CgkJY2luPj5ub2RlMT4+bm9kZTI+PmNvc3Q7CgoJCXRyZWVzW25vZGUxXS5wdXNoX2JhY2sobWFrZV9wYWlyKGNvc3QsIG5vZGUyKSk7CgkJdHJlZXNbbm9kZTJdLnB1c2hfYmFjayhtYWtlX3BhaXIoY29zdCwgbm9kZTEpKTsKCX0KCWZvcihpbnQgaT0wO2k8TTtpKyspewoJCWludCBmcm9tLCB0bzsKCQljaW4+PmZyb20+PnRvOwoJCQoJCWNvdXQ8PGNhbGNEaXN0KGZyb20sIHRvKTw8J1xuJzsKCX0KCQoJcmV0dXJuIDA7Cn0=