#include <iostream>
#include <algorithm>
#define INF 1e+9
using namespace std;

int main() {
	int n,m;
    while(1){
        cin>>n>>m;
        if(n==0&&m==0)break;
        
        int k,cost[101][101],time[101][101],a,b,c,d,p,q,r;
        for(int i=0;i<101;i++){
            for(int j=0;j<101;j++){
                if(i==j){
                    time[i][j]=0;
                    cost[i][j]=0;
                }else{
                    time[i][j]=INF;
                    cost[i][j]=INF;
                }
            }
        }
        
        for(int i=0;i<n;i++){
            cin>>a>>b>>c>>d;
            cost[a][b]=c;
            cost[b][a]=c;
            time[a][b]=d;
            time[b][a]=d;
        }
        
        for(int k=0;k<=m;k++){
            for(int i=0;i<=m;i++){
                for(int j=0;j<=m;j++){
                    cost[i][j]=min(cost[i][j],cost[i][k]+cost[k][j]);
                    time[i][j]=min(time[i][j],time[i][k]+time[k][j]);
                }
            }
        }
        
        cin>>k;
        for(int i=0;i<k;i++){
            cin>>p>>q>>r;
            if(r==0){
                cout<<cost[p][q]<<endl;
            }else if(r==1){
                cout<<time[p][q]<<endl;
            }
        }
    }
	return 0;
}