#include<stdio.h>
//#include<windows.h>
int main(void)
{
	int w,h;
	int map[101][101];
	int st[2],go[2];
	int i,j,k,l,m;
	int num;
	int b_c,b_ang,b_x,b_y;
	int sign;
	int ans;
	
	for(;;)
	{
		ans=0;
		
		for(i=0;i<100;i++)
		{
			for(j=0;j<100;j++)
				map[i][j]=0;
		}
		
		scanf("%d%d",&w,&h);
		
		if(w==0 && h==0)
			break;
		
		scanf("%d%d%d%d",&st[0],&st[1],&go[0],&go[1]);
		
		
		scanf("%d",&num);
		
		for(i=0;i<num;i++)
		{
			scanf("%d%d%d%d",&b_c,&b_ang,&b_x,&b_y);
			
			if(b_ang==0)
			{
				for(j=0;j<4;j++)
				{
					for(k=0;k<2;k++)
						map[b_x+j][b_y+k]=b_c;
				}
			}
			else
			{
				for(j=0;j<4;j++)
				{
					for(k=0;k<2;k++)
						map[b_x+k][b_y+j]=b_c;
				}
			}
		}
		
		if(map[st[0]][st[1]]==0 || map[go[0]][go[1]]==0)
			printf("NG");
		else
		{
			sign=map[st[0]][st[1]];
			
			for(i=0;i<w;i++)
			{
				for(j=0;j<h;j++)
				{
					if(map[i][j]!=sign)
						map[i][j]=0;
				}
			}
			
			map[st[0]][st[1]]=-1;
			map[go[0]][go[1]]=-2;
			
			for(i=st[0],j=st[1];;)
			{
				
/*				for(l=0;l<h;l++)
				{
					for(m=0;m<w;m++)
					{
						printf("%d ",map[l][m]);
					}
					printf("%dツ行\n",l);
				}
				getchar();
				system("cls");
*/
				
				if(map[i+1][j]==-2 || map[i][j+1]==-2 || map[i-1][j]==-2 || map[i][j-1]==-2)
				{
					ans=1;
					break;
				}
				else if(map[i-1][j]!=0 && map[i][j-1]!=0 && map[i+1][j]!=0 && map[i][j+1]!=0)
				{
					if(map[i+1][j]==sign)
					{
						map[i][j]=7;
						i++;
					}
					else if(map[i][j+1]==sign)
					{
						map[i][j]=7;
						j++;
					}
					else if(map[i-1][j]==sign)
					{
						map[i][j]=7;
						i--;
					}
					else if(map[i][j-1]==sign)
					{
						map[i][j]=7;
						j--;
					}
				}
				else if(map[i+1][j]==sign/* && map[i][j-1]!=sign*/)//ツ右
				{
//					printf("migi\n");
					map[i][j]=7;
					i++;
				}
				else if(/*map[i+1][j]!=sign && */map[i][j+1]==sign)//ツ可コ
				{
//					printf("sita1\n");
					map[i][j]=7;
					j++;
				}
				else if(map[i-1][j]==sign/* && map[i][j+1]!=sign*/)//ツ債カ
				{
//					printf("hidari\n");
					map[i][j]=7;
					i--;
				}
				else if(/*map[i+1][j]!=sign && */map[i][j-1]==sign)//ツ湘」
				{
//					printf("ue1\n");
					map[i][j]=7;
					j--;
				}
				else if(/*map[i-1][j]!=sign && */map[i][j+1]==sign)//ツ可コ
				{
//					printf("sita2\n");
					map[i][j]=7;
					j++;
				}
				else if(map[i-1][j]!=sign && map[i][j-1]==sign)//ツ湘」
				{
//					printf("ue2\n");
					map[i][j]=7;
					j--;
				}
				else if(map[i+1][j]!=sign && map[i][j+1]!=sign && map[i-1][j]!=sign && map[i][j-1]!=sign)
				{
					ans=2;
					break;
				}
			}
			if(ans==1)
				printf("OK");
			else if(ans==2)
				printf("NG");
		}
	}
}