3863
#include <stdio.h>
#include <stdlib.h>
int main(void){
int call_num = -1, part_num = -1;
while(call_num != 0 && part_num != 0){
// 통화 횟수, 도청 구간 횟수 입력
scanf("%d %d", &call_num, &part_num);
int (*call_arr)[2] = (int (*)[2])malloc(sizeof(int)*call_num*2);
for(int i = 0; i < call_num; i++){
int s,d;
// Source, Destination, Start, Duration 입력
// 사실상 Start, Duration이것만 사용
scanf("%d %d %d %d", &s, &d, &call_arr[i][0], &call_arr[i][1]);
// start을 더해서 call_arr[i][1]번째 수를 통화 끝나는 시간으로 만들어주기
call_arr[i][1] += call_arr[i][0];
}
// 도청
for(int i = 0; i < part_num; i++){
int count = 0;
int start = 0, duration = 0;
// 도청할 구간 입력
scanf("%d %d", &start, &duration);
// Duration에 Start 더해서 duration을 도청을 끝내는 시간으로 만들어주기
duration += start;
// 겹치는지 확인하고 겹치는 구간이 1초라도 있다면 count
for(int j = 0; j < call_num; j++){
if(start >= call_arr[j][0]){
if(start < call_arr[j][1]){
count++;
}
}
else if(duration <= call_arr[j][0]){
continue;
}
else{
count++;
}
}
// 출력
printf("%d\n", count);
}
free(call_arr);
}
return 0;
}