#include<iostream>
using namespace std;
int main(){
  int n;//線路の情報の数
  int m;//駅の数
  int k;//問い合わせの数
  int cans = 0;//最小金額
  int tans = 0;//最短時間
  int c;
  while(cin>>n>>m){
    if(n==0&&m==0) break;
    int a[n],b[n];//駅の番号
    int cost[n],time[n];
    int dcost[m+1],dtime[m+1];
    for(int i=0;i<n;i++) cin >> a[i] >> b[i] >> cost[i] >> time[i];   
    cin >> k;
    int p[k],q[k],r[k];
    for(int i=0;i<k;i++){
      for(int j=0;j<=m;j++){
	dcost[j] = 0;
	dtime[j] = 0;
      }
      cin >> p[i] >> q[i] >> r[i];
      for(int j=p[i];j<=q[i];j++){
	for(int z=0;z<n;z++){
	  if(a[z]==j){
	    c = b[z];
	    if(cost[z]+dcost[j]<dcost[c]||dcost[c]==0){ 
	      dcost[c] = cost[z] + dcost[j];
	    }
	    if(time[z]+dtime[j]<dtime[c]||dtime[c]==0){
	      dtime[c] = time[z] + dtime[j];
	    }
	  }
	}
      }
      c = q[i];
      if(r[i]==0) cout << dcost[c] << endl;
      if(r[i]==1) cout << dtime[c] << endl;
    }
  }
    return 0;
}

   