#include <stdio.h>
#include <stdlib.h>

#define STUDENT_MAX 10001  /* 生徒数最大値 + 1 */
#define TIME_RANGE  721    /* 時間範囲(1260 - 540 + 1) */
#define TIME_IDX_SHIFT 540

int Login_sts[STUDENT_MAX][TIME_RANGE];
volatile int Login_cnt[STUDENT_MAX];
int Login_time[STUDENT_MAX];

int main(void){
	int N; /* PC数 */
	int M; /* 生徒数 */
	int r; /* 記録数 */
	int t; /* 時刻 */
	int n; /* PC */
	int m; /* 生徒 */
	int s; /* login/logout */
	int q; /* 質問数 */
	int t_s; /* 範囲(開始) */
	int t_e; /* 範囲(終了) */

	int i,j,ans;

	while(1){
		scanf("%d %d",&N,&M);
		if((N == 0) && (M == 0))break;
		/* Init */
		for(i = 0;i < STUDENT_MAX;i++){
			for(j = 0;j < TIME_RANGE;j++){
				Login_sts[i][j] = 0;
				Login_cnt[i] = 0;
			}
		}
		/* Input */
		scanf("%d",&r);
		for(i = 0;i < r; i++){
			scanf("%d %d %d %d",&t,&n,&m,&s);
			if(s == 1){ /* login */
				if(Login_cnt[m] == 0){
					Login_time[m] = t;
				}
				Login_cnt[m]++;
			}else{  /* logout */
				Login_cnt[m]--;
				if(Login_cnt[m] == 0){
					for(j = (Login_time[m] - TIME_IDX_SHIFT);j < (t- TIME_IDX_SHIFT);j++){
						 Login_sts[m][j] = 1;
					}
				}
			}
		}

		/* Output */
		scanf("%d",&q);
		for(i = 0;i < q; i++){
			ans = 0;
			scanf("%d %d %d",&t_s,&t_e,&m);
			for(j = (t_s - TIME_IDX_SHIFT);j < (t_e - TIME_IDX_SHIFT);j++){
				ans += Login_sts[m][j];
			}
			printf("%d\n",ans);
		}
	}


	return 0;
}

