# include <stdio.h>
# include <algorithm>
using namespace std;
# define FIN "gropi.in"
# define FOUT "gropi.out"
# define MAXN 100010
struct two
{
long long c,l;
};
long long N,k,i,x,y,T;
two H[MAXN];
long long poz[MAXN];
long long cmp(two a,two b)
{
return a.c<b.c;
}
void swap(int &a,int &b)
{
int aux;
aux = a;
a = b;
b = aux;
}
void down(long long i,long long N)
{
long long tata,fiu;
tata = i;
fiu = i << 1;
while (fiu <= N)
{
if (fiu < N && H[fiu].c<H[fiu+1].c) fiu++;
if (H[tata].c<H[fiu].c)
{
swap(H[tata].c,H[fiu].c);
swap(H[tata].l,H[fiu].l);
tata = fiu;
fiu = fiu << 1;
}
else fiu = N+1;
}
}
void heap(long long N)
{
long long i;
for (i = N/2; i >= 1; --i)
down(i,N);
for (i = N; i > 1; --i)
{
swap(H[1].c,H[i].c);
swap(H[1].l,H[i].l);
down(1,i-1);
}
}
long long search(long long val)
{
long long st,dr,mij,rez = 0;
st = 0;
dr = N+1;
while (st <= dr)
{
mij = (st + dr) >> 1;
if (H[mij].c <= val)
{
rez = mij;
st = mij + 1;
}
else dr = mij - 1;
}
return rez;
}
long long verif(long long xi,long long yi,long long xf,long long yf)
{
long long rez;
if (xi == xf && yi == yf) return 0;
if (xi == xf && yi != yf) return 1;
if (H[xf].l == H[xf+1].l)
if (H[xf].l == yf) rez = poz[xf]+1;
else rez=poz[xf];
if (H[xf].l != H[xf+1].l)
if (H[xf].l == yf) rez=poz[xf+1];
else rez=poz[xf];
if (H[xi].l == H[xi+1].l)
if (H[xi].l == yi) rez -= (poz[xi]-1);
else rez -= poz[xi];
if (H[xi].l != H[xi+1].l)
if (H[xi].l == yi) rez -= poz[xi+1];
else rez -= poz[xi];
return rez;
}
int main()
{
freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%lld%lld",&k,&N);
for (i = 1; i <= N; ++i)
scanf("%lld%lld",&H[i].l,&H[i].c);
//sort(H+1,H+N+1,cmp);
heap(N);
long long ct = 0;
if (H[1].l == 1) H[0].l = 2;
else H[0].l = 1;
if (H[N].l == 1) H[N+1].l= 2;
else H[N+1].l = 1;
H[N+1].c=k+1;
for (i = 1; i <= N+1; ++i)
if (H[i-1].l != H[i].l) poz[i] = ++ct;
else poz[i] = ct;
scanf("%lld",&T);
long long xi,yi,xf,yf;
long long rez;
for (i = 1; i <= T; ++i)
{
scanf("%lld%lld",&xi,&yi);
scanf("%lld%lld",&xf,&yf);
if (yf < yi)
{
swap(xi,xf);
swap(yi,yf);
}
x = search(yi);
y = search(yf);
rez = verif(x,xi,y,xf);
rez+=yf-yi+1;
printf("%lld\n",rez);
}
return 0;
}