#include<iostream>
#include<climits>
using namespace std;

#define NONE INT_MAX>>1

int main()
{
  int n,m,a,b,cost,time,k,p,q,r,M[100][100],N[100][100];
  while(cin>>n>>m,n|m){
    for(int i=0;i<m;i++)for(int j=0;j<m;j++){
      M[i][j]=NONE;
      N[i][j]=NONE;
    }
    for(int i=0;i<n;i++){
      cin>>a>>b>>cost>>time;
      a--;b--;
      M[a][b]=M[b][a]=cost;
      N[a][b]=N[b][a]=time;
    }
    for(int l=0;l<m;l++)for(int i=0;i<m;i++)for(int j=0;j<m;j++){
      M[i][j]=min(M[i][j],M[i][l]+M[l][j]);
      N[i][j]=min(N[i][j],N[i][l]+N[l][j]);
    }
    cin>>k;
    for(int i=0;i<k;i++){
      cin>>p>>q>>r;
      p--;q--;
      if(r==0)cout<<M[p][q]<<endl;
      else cout<<N[p][q]<<endl;
    }
  }
}