#include<iostream>
#include<vector>
#include<set>
#include<functional>
#include<map>
#define MAX 10010
#include<queue>
using namespace std;
typedef pair<int,int> P;
int main(){
	int e,q,t,n,m,s,p;
	while(cin>>e>>q,e||q){
		vector<P> tab[MAX];
		cin>>p;
		for(int i=0;i<p;i++){
			cin>>t>>n>>m>>s;
			tab[m-1].push_back(P(t,s));
		}
		int now,t1,t2;
		cin>>n;
		for(int i=0;i<n;i++){
			cin>>t1>>t2>>m;
			now=t1;
			int ans=0,sum=0;
			int j;
			m--;
			for(j=0;j<tab[m].size()&&tab[m][j].first<t2;j++){
				if(!tab[m][j].second){
					if(sum>0&&tab[m][j].first>=t1&&tab[m][j].first<t2){
						ans+=tab[m][j].first-now;
					}sum--;
					if(tab[m][j].first>t1&&tab[m][j].first<t2)
					now=tab[m][j].first;
				}
				else if(tab[m][j].second){
					if(sum>0&&tab[m][j].first>t1&&tab[m][j].first<t2){
						ans+=tab[m][j].first-now;
					}sum++;
					if(tab[m][j].first>=t1&&tab[m][j].first<t2)
					now=tab[m][j].first;
				}
			}
			if(sum>0)
			ans+=t2-now;
			cout<<ans<<endl;
			
		}
	}
	return 0;
}