#include <cstdio>
#include <cstring>

int map[100][100];
int w,h;
int xs,ys;
int xg,yg;
int n;
int c,d,x,y;
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};

int dfs(int x,int y,int cl) {
	if(x==xg-1&&y==yg-1) return 1;
	for(int i=0;i<4;i++) {
		int nx=x+dx[i],ny=y+dy[i];
		if(0<=nx&&nx<w&&0<=ny&&ny<h&&map[nx][ny]==cl) {
			if(dfs(nx,ny,cl)) return 1;
		}
	}
	return 0;
}

int main() {
	while(1) {
		memset(map,0,sizeof(map));
		scanf("%d %d",&w,&h);
		if(w==0&&h==0) break;
		scanf("%d %d",&xs,&ys);
		scanf("%d %d",&xg,&yg);
		scanf("%d",&n);
		for(int i=0;i<n;i++) {
			scanf("%d %d %d %d",&c,&d,&x,&y);
			int dx,dy;
			if(d) dx=2,dy=4; else dx=4,dy=2;
			for(int i=0;i<dx;i++) {
				for(int j=0;j<dy;j++) {
					map[x-1+i][y-1+j]=c;
				}
			}
		}
		if(map[xs-1][ys-1]!=map[xg-1][yg-1]) {
			printf("NG\n");
		}else {
			printf("%s\n",dfs(xs-1,ys-1,c)?"OK":"NG");
		}
	}
}