#include <bits/stdc++.h>
#define INF 114514810
#define FOR(i, r, n) for(int i=(r); i<(n); i++) 
#define REP(i, n) FOR(i, (0), n)

using namespace std;

int n, a, b, c, d, t = 0, sum = INF, ans, nodes = 0, p, q, r, w;
int x[102][102], y[102][102];

int main(){
	while (true){
		cin >> n >> nodes;
		if (n == 0 && nodes == 0) break;
		REP(i, 102)
			REP(j, 102){
			x[i][j] = (i == j ? 0 : INF);
			y[i][j] = (i == j ? 0 : INF);
		}
		REP(i, n){
			cin >> a >> b >> c >> d;
			x[a][b] = x[b][a] = c;
			y[a][b] = y[b][a] = d;
		}
		REP(k, 10)
			REP(i, 10)
			REP(j, 10){
			x[i][j] = min(x[i][j], x[i][k] + x[k][j]);
			y[i][j] = min(y[i][j], y[i][k] + y[k][j]);
		}
		cin >> w;
		REP(k, w){
			cin >> p >> q >> r;
			if (r) cout << y[p][q] << endl;
			else cout << x[p][q] << endl;
		}
	}
}