/**
* author: orzvanh14 ( )
* created: 23.12.2022 10:08:02
* too lazy to update time
**/
// i wants to take ioi
//binhtinhtutinkhongcaycunhungmotkhikhongcontutinnualatuyetvong
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define nn "\n"
#define pi pair<int, int>
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define eb emplace_back
#define pb push_back
#define TASK " "
#define ms(a, x) memset(a, x, sizeof(a))
#define all(a) a.begin(), a.end()
#define All(a, n) a + 1, a + 1 + n
#define LOG 20
const int INF = 1e18;
const int mod = 1e9+7;
const int N = 4e5 + 5;
int MOD = 998244353;
int bit[200000];
struct node{
int kc, u, hk;
bool operator<(const node& other) const {
return kc > other.kc;
}
};
struct edge{
int u, v, w;
bool operator<(const edge& other) const {
return w < other.w;
}
};
int n, q, m;
vector<pi> adj[N];
vector<pi> e[N];
int par[N][LOG + 1];
int p[N], sz[N];
int high[N], d[N];
int w[N][LOG + 1];
int kq = 0;
vector<edge> edges;
void nhap(){
cin >> n >> m;
for(int i = 1; i <= m; i++){
int u, v, w;
cin >> u >> v >> w;
adj[u].eb(v, w);
adj[v].eb(u, w);
edges.pb({u, v, w});
}
}
void dfs(int u, int p, int wt){
par[u][0] = p;
w[u][0] = wt;
for(int i = 1; i <= LOG; i++){
par[u][i] = par[par[u][i - 1]][i - 1];
w[u][i] = max(w[u][i - 1], w[par[u][i - 1]][i - 1]);
}
for(auto [v, wt] : e[u]){
if(v != p){
high[v] = high[u] + 1;
dfs(v, u, wt);
}
}
}
int lca(int u, int v){
if(high[u] < high[v]) return lca(v, u);
int res = 0;
for(int i = LOG; i >= 0; i--){
if(high[par[u][i]] >= high[v]){
res = max(res, w[u][i]);
u = par[u][i];
// Cân bằng độ sâu
}
}
if(v == u) return res;
for(int i = LOG; i >= 0; i--){
if(par[u][i] != par[v][i]){
res = max({res, w[u][i], w[v][i] });
u = par[u][i];
v = par[v][i];
// cùng nhảy lên để tìm lca
}
}
return max({res, w[u][0], w[v][0] });
}
void make_set(int s){
p[s] = s;
sz[s] = 1;
}
int get(int a){
if(a == p[a]) return a;
return p[a] = get(p[a]);
}
bool union_sets(int a, int b){
a = get(a);
b = get(b);
if(a != b){
if(sz[a] < sz[b]) swap(a, b);
p[b] = a;
sz[a] += sz[b];
return true;
}
return false;
}
void kruskal(){
sort(edges.begin(), edges.end());
for(int i = 0; i < m; i++){
int x = edges[i].u, y = edges[i].v, w = edges[i].w;
if(union_sets(x, y)){
kq += w;
e[x].eb(y, w);
e[y].eb(x, w);
}
}
}
void solve(){
for(int i = 1; i <= n; i++) make_set(i);
kruskal();
high[0] = -1;
dfs(1, 0, 0);
cin >> q;
while(q--){
int a, b; cin >> a >> b;
cout << kq - lca(a, b) << nn;
// cout << lca(a, b) << nn;
}
}
signed main() {
// freopen("piggyback.in", "r", stdin);
// freopen("piggyback.out", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
nhap();
solve();
return 0;
}
LyoqCiAqICAgIGF1dGhvcjogIG9yenZhbmgxNCAoICApCiAqICAgIGNyZWF0ZWQ6IDIzLjEyLjIwMjIgMTA6MDg6MDIKICogICAgdG9vIGxhenkgdG8gdXBkYXRlIHRpbWUKKiovCi8vIGkgd2FudHMgdG8gdGFrZSBpb2kKLy9iaW5odGluaHR1dGlua2hvbmdjYXljdW5odW5nbW90a2hpa2hvbmdjb250dXRpbm51YWxhdHV5ZXR2b25nCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIG5uICJcbiIKI2RlZmluZSBwaSBwYWlyPGludCwgaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgbGIgbG93ZXJfYm91bmQKI2RlZmluZSB1YiB1cHBlcl9ib3VuZAojZGVmaW5lIGViIGVtcGxhY2VfYmFjawojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIFRBU0sgIiAiCgojZGVmaW5lIG1zKGEsIHgpIG1lbXNldChhLCB4LCBzaXplb2YoYSkpCiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSwgYS5lbmQoKQojZGVmaW5lIEFsbChhLCBuKSBhICsgMSwgYSArIDEgKyBuCgojZGVmaW5lIExPRyAyMAoKCmNvbnN0IGludCBJTkYgPSAxZTE4Owpjb25zdCBpbnQgbW9kID0gMWU5Kzc7CmNvbnN0IGludCBOID0gNGU1ICArIDU7CmludCBNT0QgPSA5OTgyNDQzNTM7CmludCBiaXRbMjAwMDAwXTsKc3RydWN0IG5vZGV7CglpbnQga2MsIHUsIGhrOwoJYm9vbCBvcGVyYXRvcjwoY29uc3Qgbm9kZSYgb3RoZXIpIGNvbnN0IHsKICAgICAgICByZXR1cm4ga2MgPiBvdGhlci5rYzsKICAgIH0KfTsKc3RydWN0IGVkZ2V7CglpbnQgdSwgdiwgdzsKCWJvb2wgb3BlcmF0b3I8KGNvbnN0IGVkZ2UmIG90aGVyKSBjb25zdCB7CiAgICAgICAgcmV0dXJuIHcgPCBvdGhlci53OwogICAgfQp9OwppbnQgbiwgcSwgbTsKdmVjdG9yPHBpPiBhZGpbTl07CnZlY3RvcjxwaT4gZVtOXTsKaW50IHBhcltOXVtMT0cgKyAxXTsKaW50IHBbTl0sIHN6W05dOwppbnQgaGlnaFtOXSwgZFtOXTsKaW50IHdbTl1bTE9HICsgMV07CmludCBrcSA9IDA7CnZlY3RvcjxlZGdlPiBlZGdlczsKdm9pZCBuaGFwKCl7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBtOyBpKyspewogICAgICAgIGludCB1LCB2LCB3OwogICAgICAgIGNpbiA+PiB1ID4+IHYgPj4gdzsKICAgICAgICBhZGpbdV0uZWIodiwgdyk7CiAgICAgICAgYWRqW3ZdLmViKHUsIHcpOwogICAgICAgIGVkZ2VzLnBiKHt1LCB2LCB3fSk7CiAgICB9Cn0Kdm9pZCBkZnMoaW50IHUsIGludCBwLCBpbnQgd3QpewogICAgcGFyW3VdWzBdID0gcDsKICAgIHdbdV1bMF0gPSB3dDsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gTE9HOyBpKyspewogICAgICAgIHBhclt1XVtpXSA9IHBhcltwYXJbdV1baSAtIDFdXVtpIC0gMV07CiAgICAgICAgd1t1XVtpXSA9IG1heCh3W3VdW2kgLSAxXSwgd1twYXJbdV1baSAtIDFdXVtpIC0gMV0pOwogICAgfQogICAgZm9yKGF1dG8gW3YsIHd0XSA6IGVbdV0pewogICAgICAgIGlmKHYgIT0gcCl7CiAgICAgICAgICAgIGhpZ2hbdl0gPSBoaWdoW3VdICsgMTsKICAgICAgICAgICAgZGZzKHYsIHUsIHd0KTsKICAgICAgICB9CiAgICB9Cn0KaW50IGxjYShpbnQgdSwgaW50IHYpewogICAgaWYoaGlnaFt1XSA8IGhpZ2hbdl0pIHJldHVybiBsY2EodiwgdSk7CiAgICBpbnQgcmVzID0gMDsKICAgIGZvcihpbnQgaSA9IExPRzsgaSA+PSAwOyBpLS0pewogICAgICAgIGlmKGhpZ2hbcGFyW3VdW2ldXSA+PSBoaWdoW3ZdKXsKICAgICAgICAgICAgcmVzID0gbWF4KHJlcywgd1t1XVtpXSk7CiAgICAgICAgICAgIHUgPSBwYXJbdV1baV07CiAgICAgICAgICAgIC8vIEPDom4gYuG6sW5nIMSR4buZIHPDonUKICAgICAgICB9CiAgICB9CiAgICBpZih2ID09IHUpIHJldHVybiByZXM7CiAgICBmb3IoaW50IGkgPSBMT0c7IGkgPj0gMDsgaS0tKXsKICAgICAgICBpZihwYXJbdV1baV0gIT0gcGFyW3ZdW2ldKXsKICAgICAgICAgICAgcmVzID0gbWF4KHtyZXMsIHdbdV1baV0sIHdbdl1baV0gfSk7CiAgICAgICAgICAgIHUgPSBwYXJbdV1baV07CiAgICAgICAgICAgIHYgPSBwYXJbdl1baV07CiAgICAgICAgICAgIC8vIGPDuW5nIG5o4bqjeSBsw6puIMSR4buDIHTDrG0gbGNhCiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIG1heCh7cmVzLCB3W3VdWzBdLCB3W3ZdWzBdIH0pOwp9CnZvaWQgbWFrZV9zZXQoaW50IHMpewogICAgcFtzXSA9IHM7CiAgICBzeltzXSA9IDE7Cn0KaW50IGdldChpbnQgYSl7CiAgICBpZihhID09IHBbYV0pIHJldHVybiBhOwogICAgcmV0dXJuIHBbYV0gPSBnZXQocFthXSk7Cn0KYm9vbCB1bmlvbl9zZXRzKGludCBhLCBpbnQgYil7CiAgICBhID0gZ2V0KGEpOwogICAgYiA9IGdldChiKTsKICAgIGlmKGEgIT0gYil7CiAgICAgICAgaWYoc3pbYV0gPCBzeltiXSkgc3dhcChhLCBiKTsKICAgICAgICBwW2JdID0gYTsKICAgICAgICBzelthXSArPSBzeltiXTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQp2b2lkIGtydXNrYWwoKXsKICAgIHNvcnQoZWRnZXMuYmVnaW4oKSwgZWRnZXMuZW5kKCkpOwogICAgZm9yKGludCBpID0gMDsgaSA8IG07IGkrKyl7CiAgICAgICAgaW50IHggPSBlZGdlc1tpXS51LCB5ID0gZWRnZXNbaV0udiwgdyA9IGVkZ2VzW2ldLnc7CiAgICAgICAgaWYodW5pb25fc2V0cyh4LCB5KSl7CiAgICAgICAgICAgIGtxICs9IHc7CiAgICAgICAgICAgIGVbeF0uZWIoeSwgdyk7CiAgICAgICAgICAgIGVbeV0uZWIoeCwgdyk7CiAgICAgICAgfQogICAgfQp9CnZvaWQgc29sdmUoKXsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBtYWtlX3NldChpKTsKICAgIGtydXNrYWwoKTsKICAgIGhpZ2hbMF0gPSAtMTsKICAgIGRmcygxLCAwLCAwKTsKICAgIGNpbiA+PiBxOwogICAgd2hpbGUocS0tKXsKICAgICAgICBpbnQgYSwgYjsgY2luID4+IGEgPj4gYjsKICAgICAgICBjb3V0IDw8IGtxIC0gbGNhKGEsIGIpIDw8IG5uOwovLyAgICAgICAgY291dCA8PCBsY2EoYSwgYikgPDwgbm47CiAgICB9Cn0Kc2lnbmVkIG1haW4oKSB7CgkvLyBmcmVvcGVuKCJwaWdneWJhY2suaW4iLCAiciIsIHN0ZGluKTsKCS8vIGZyZW9wZW4oInBpZ2d5YmFjay5vdXQiLCAidyIsIHN0ZG91dCk7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJY2luLnRpZSgwKTsKCWNvdXQudGllKDApOwoJbmhhcCgpOwoJc29sdmUoKTsKCXJldHVybiAwOwoKfQo=