어느 대학의 컴퓨터 실습 강좌에서는 하루 동안 모든 PC의 로그인/로그아웃 기록을 파일에 저장한다. 한 학생이 동시에 두 대 이상의 PC를 사용할 수도 있지만, 아직 로그아웃하지 않은 사람이 로그인해 둔 PC에는 다른 사람이 로그인할 수 없다.
주어진 시간 구간(예: 실습 수업 시간) 동안, 한 학생이 적어도 한 대 이상의 PC를 사용하고 있던 총 시간을 기록으로부터 계산하는 프로그램을 작성하여라.
다음은 로그인/로그아웃 기록의 한 예시이다.
"13:00부터 14:30 사이에 학생 1이 사용한 시간을 구하라"라는 질의에 대해서는 "55분"을 출력해야 한다. 이는 13:00부터 13:45까지의 45분과 14:20부터 14:30까지의 10분을 더한 값이다.
입력은 여러 개의 데이터셋으로 이루어진다. 입력의 끝은 공백으로 구분된 두 개의 0(0 0)만 있는 줄로 나타낸다. 데이터셋의 개수는 10을 넘지 않는다.
각 데이터셋의 형식은 다음과 같다.
N M
r
record1
...
recordr
q
query1
...
queryq
첫 줄의 $N$과 $M$은 각각 PC의 수와 학생의 수이다. $r$은 기록의 수, $q$는 질의의 수이다. 이 네 정수는 다음을 만족한다.
각 기록은 공백으로 구분된 네 정수 $t\ n\ m\ s$ 로 이루어진다.
$s$는 0 또는 1이다. $s$가 1이면 학생 $m$이 시각 $t$에 PC $n$에 로그인했음을, $s$가 0이면 학생 $m$이 시각 $t$에 PC $n$에서 로그아웃했음을 뜻한다. 시각은 그날 0시 0분부터 경과한 분(minute)으로 표현된다. $t$, $n$, $m$은 다음을 만족한다.
기록에 대해 다음을 가정할 수 있다.
각 질의는 공백으로 구분된 세 정수 $t_s\ t_e\ m$ 으로 이루어진다.
이는 "$t_s$부터 $t_e$ 사이에 학생 $m$이 사용한 시간"을 뜻한다. $t_s$, $t_e$, $m$은 다음을 만족한다.
각 질의에 대해, 사용 시간(분)을 나타내는 10진 정수 하나를 한 줄에 출력한다. 출력 줄에는 이 숫자 외의 다른 문자가 있어서는 안 된다.