#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define INF (1<<24)
main(){
  int n,m,k;
  int cost[301][301];
  int time[301][301];
  while(1){
    scanf("%d %d",&n,&m);
    for(int i=1;i<=m;i++)
      for(int j=1;j<=m;j++){cost[i][j]=INF;time[i][j]=INF;}
    if(n==0 && m==0) break;
    for(int i=0;i<n;i++){
      int a,b,c,t;
      scanf("%d %d %d %d",&a,&b,&c,&t);
      cost[a][b]=c;
      cost[b][a]=c;
      time[a][b]=t;
      time[b][a]=t;
    }
    for(int i=1;i<=m;i++)
      for(int j=1;j<=m;j++)
	for(int l=1;l<=m;l++){
	  cost[i][j]=min(cost[i][j],cost[i][l]+cost[l][j]);
	  time[i][j]=min(time[i][j],time[i][l]+time[l][j]);
	}
      
    scanf("%d",&k);
    for(int i=0;i<k;i++){
      int p,q,r;
      scanf("%d %d %d",&p,&q,&r);
      if(r==0) printf("%d\n",cost[p][q]);
      else printf("%d\n",time[p][q]);
    }

  }
}