#include<stdio.h>
#include<string.h>
int gx,gy,m[128][128];
int F(int x,int y,int c)
{
	if(x==gx&&y==gy)
		return 1;
	if(m[y][x]!=c)
		return 0;
	m[y][x]=-c;
	int d[]={0,1,0,-1,0},i,f;
	for(i=f=0;i<4;++i)
		f=f||F(x+d[i],y+d[i+1],c);
	return f;
}
int main()
{
	int w,h,sx,sy,x,y,n,c,d,i,j;
	while(scanf("%d%d",&w,&h),w)
	{
		memset(m,0,sizeof(m));
		scanf("%d%d%d%d%d",&sx,&sy,&gx,&gy,&n);
		while(n--)
		{
			scanf("%d%d%d%d",&c,&d,&x,&y);
			for(i=0;i<2;++i)for(j=0;j<4;++j)
				if(d) m[y+j][x+i]=c;
				else m[y+i][x+j]=c;
		}
		if(m[sy][sx]&&F(sx,sy,m[sy][sx]))puts("YES");
		else puts("NO");
	}
	return 0;
}