#include <cstdio>
#include <cstring>
int board[100][100];
bool vst[100][100];
int dx[]={1,0,-1,0},dy[]={0,1,0,-1};
int w,h,xs,ys,xg,yg,n;
bool dfs(int x,int y) {
	if(x==xg && y==yg)
		return true;
	vst[x][y]=true;
	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)
			continue;
		if(board[nx][ny]!=board[xs][ys])
			continue;
		if(vst[nx][ny])
			continue;
		if(dfs(nx,ny)) return true;
	}
	return false;
}
int main() {
	while(scanf("%d %d",&w,&h),w|h) {
		scanf("%d %d",&xs,&ys); xs--;ys--;
		scanf("%d %d",&xg,&yg); xg--;yg--;
		scanf("%d",&n);
		memset(board,0,sizeof(board));
		memset(vst,0,sizeof(vst));
		for(int i=0;i<n;i++) {
			int c,d,x,y;
			scanf("%d %d %d %d",&c,&d,&x,&y); x--;y--;
			if(d==0) {
				for(int i=0;i<4;i++) for(int j=0;j<2;j++)
					board[x+i][y+j]=c;
			}else {
				for(int i=0;i<2;i++) for(int j=0;j<4;j++)
					board[x+i][y+j]=c;
			}
		}
		printf("%s\n",dfs(xs,ys)?"OK":"NG");
	}
}