#include<stdio.h>
#include<algorithm>
using namespace std;
#define N 100010
int unu[N],doi[N],n,c,m,x1,x2,y1,y2;
char ca[35];
bool compar(const int &x,const int &y)
{
if(x<y)
return true;
return false;
}
void preluc()
{
unu[++unu[0]]=c+1;
doi[++doi[0]]=c+1;
unu[++unu[0]]=0;
doi[++doi[0]]=0;
sort(unu+1,unu+unu[0]+1,compar);
sort(doi+1,doi+doi[0]+1,compar);
}
int caut(int x,const int *v)
{
int p=1,u=v[0],mij;
if(v[0]==0)
return 0;
while(p<u)
{
mij=(p+u)>>1;
if(x<=v[mij])
u=mij;
else
p=mij+1;
}
if(p>v[0])
p=v[0];
return p;
}
void parsare()
{
int aux[6],i,care=-1,aux1=0;
fgets(ca,35,stdin);
for(i=0; ca[i]!='\0'; i++)
{
if((ca[i]>='0')&&(ca[i]<='9'))
aux1=aux1*10+ca[i]-'0';
else
{
aux[++care]=aux1;
aux1=0;
}
}
x1=aux[0];
y1=aux[1];
x2=aux[2];
y2=aux[3];
}
void rezolva()
{
int pasi=1,x,y;
bool sens;
int aux;
//scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
parsare();
if((x1==x2)&&(y1==y2))
{
printf("0\n");
return;
}
if(y1<y2)
sens=true;
else
sens=false;
x=x1;
y=y1;
if(sens==true)
{
while(y!=y2)
{
if(x==1)
{
aux=caut(y,unu);
if(aux)
{
while((unu[aux]<y)&&(aux<unu[0]))
aux++;
}
if((unu[aux]>y2)||(!aux))
{
pasi+=y2-y;
y=y2;
}
else
{
pasi+=unu[aux]-y;
y=unu[aux]-1;
x=2;
}
}
else
{
aux=caut(y,doi);
if(aux)
{
while((doi[aux]<y)&&(aux<doi[0]))
aux++;
}
if((doi[aux]>y2)||(!aux))
{
pasi+=y2-y;
y=y2;
}
else
{
pasi+=doi[aux]-y;
y=doi[aux]-1;
x=1;
}
}
}
}
else
{
while(y!=y2)
{
if(x==1)
{
aux=caut(y,unu);
while((unu[aux]>y)&&(aux>1))
aux--;
if((unu[aux]<y2)||(!aux))
{
pasi+=y-y2;
y=y2;
}
else
{
pasi+=y-unu[aux];
y=unu[aux]+1;
x=2;
}
}
else
{
aux=caut(y,doi);
while((doi[aux]>y)&&(aux>1))
aux--;
if((doi[aux]<y2)||(!aux))
{
pasi+=y-y2;
y=y2;
}
else
{
pasi+=y-doi[aux];
y=doi[aux]+1;
x=1;
}
}
}
}
if(x!=x2)
pasi++;
printf("%d\n",pasi);
}
void citire()
{
int i,y,j;
scanf("%d%d\n",&c,&n);
for(i=0; i<n; i++)
{
//scanf("%d%d",&x,&y);
fgets(ca,35,stdin);
y=0;
for(j=2; ca[j]!='\n'; j++)
y=y*10+ca[j]-'0';
if(ca[0]=='1')
unu[++unu[0]]=y;
else
doi[++doi[0]]=y;
}
preluc();
scanf("%d\n",&m);
for(i=0; i<m; i++)
rezolva();
}
int main()
{
freopen("gropi.in","r",stdin);
freopen("gropi.out","w",stdout);
citire();
return 0;
}