#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;



int main(){

	int N,M,r;
	while(cin >> N >> M && !(N == 0 && M == 0)){
		// Ô
		vector<pair<int,int> > Gakusei[10001];
		cin >> r;
		pair<int,int> pc[1001];
		for(int i = 0; i < r; i++){
			int t;
			int n;
			int m;
			int s;
			cin >> t >> n >> m >> s;
			if(s == 1){
				pc[n].first = t;
			}
			else{
				pc[n].second = t;
				Gakusei[m].push_back(pc[n]);
			}
		}

		int q;
		cin >> q;
		for(int i = 0; i < q; i++){
			int cnt = 0;
			int ts,te,m;
			cin >> ts >> te >> m;
			sort(Gakusei[m].begin(),Gakusei[m].end());
			int cTime = ts;
			for(int j = 0; j < Gakusei[m].size(); j++){
				// æÃ~ÉJnÔª¢©ç©Ä¢­
				if(cTime >= Gakusei[m][j].second || Gakusei[m][j].first >= te)
					continue;
				else{
					cnt += (min(te,Gakusei[m][j].second) - max(cTime,Gakusei[m][j].first));
					cTime = min(te,Gakusei[m][j].second);
				}
			}
			cout << cnt << endl;
		}

	}
	return 0;
}