#include<cstdio>
using namespace std;
int aux,p1,i1,x1,x2,y1,y2,s,i,j,n,c[3][100004],a[3][100004];
void su(int x1,int y1,int x2,int y2)
{
if(y1==y2)
{
if(x1==x2) return ;
else
{
s++;
return ;
}
}
if(x1==x2)
{
if(c[x1][y1]>y2)
{
s=s+y2-y1+1;
return ;
}
else
{
s=s+c[x1][y1]-y1;
su(3-x1,c[x1][y1]-1,x2,y2);
}
}
else
{
if(c[x1][y1]>y2)
{
s=s+1+y2-y1+1;
return ;
}
else
{
s=s+c[x1][y1]-y1;
su(3-x1,c[x1][y1]-1,x2,y2);
}
}
}
int main()
{
freopen("gropi.in","r",stdin);
freopen("gropi.out","w",stdout);
scanf("%d",&n);
scanf("%d",&p1);
for(i1=1;i1<=p1;i1++)
{
scanf("%d",&x1);
scanf("%d",&y1);
a[x1][y1]=1;
}
c[1][n]=n+1;
c[1][n+1]=n+1;
c[2][n]=n+1;
c[2][n+1]=n+1;
for(i=1;i<=2;i++)
for(j=n;j>=1;j--)
{if(a[i][j]==1) c[i][j]=j;
else c[i][j]=c[i][j+1];}
scanf("%d",&p1);
for(i1=1;i1<=p1;i1++)
{
scanf("%d",&x1);
scanf("%d",&y1);
scanf("%d",&x2);
scanf("%d",&y2);
if(y1>y2)
{
aux=y1;
y1=y2;
y2=aux;
aux=x1;
x1=x2;
x2=aux;
}
s=0;
su(x1,y1,x2,y2);
printf("%d\n",s);
}
return 0;
}