#include<iostream>
#include<algorithm>

using namespace std;

int main()
{
	static int board[101][101],wf[10300][10300];
	int dx[]={1,0,-1,0},dy[]={0,-1,0,1};

	for(int w,h;cin>>w>>h,w;){
		for(int i=1;i<=h;i++)for(int j=1;j<=w;j++)board[i][j]=-1;
		int xs,ys,xg,yg,n;	cin>>xs>>ys>>xg>>yg>>n;
		while(n--){
			int c,d,x,y;	cin>>c>>d>>x>>y;
			for(int i=0;i<(d?4:2);i++)for(int j=0;j<(d?2:4);j++)board[y+i][x+j]=c;
		}

		if(board[ys][xs]!=board[yg][xg])	cout<<"NG"<<endl;
		else{
			int clr=board[ys][xs];
			for(int i=1;i<=w*h;i++)for(int j=1;j<=w*h;j++)wf[i][j]=1000000;
			for(int i=1;i<=h;i++){
				for(int j=1;j<=w;j++){
					if(board[i][j]==clr){
						for(int k=0;k<4;k++){
							int xx=j+dx[k],yy=i+dy[k];
							if(0<xx&&xx<=w&&0<yy&&yy<=h&&board[yy][xx]==clr)
								wf[w*i+j][w*yy+xx]=wf[w*yy+xx][w*i+j]=0;
						}
					}
				}
			}

			for(int k=1;k<=w*h;k++)for(int i=1;i<=w*h;i++)for(int j=1;j<=w*h;j++)
				wf[i][j]=min(wf[i][j],wf[i][k]+wf[k][j]);

			cout<<(wf[w*ys+xs][w*yg+xg]==0?"OK":"NG")<<endl;
		}
	}

	return 0;
}