#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int w,h,xs,ys,xg,yg,n,ban[111][111]={{0},{0}};
bool visited [101][101];
const int START=4545191;
const int GOAL=454545;

	bool dfs(int x,int y){
		//cout<<x<<" "<<y<<endl;
		if(xg==x&&yg==y)return true;
		
		if(ban[x+1][y]==ban[xs][ys]&&visited[x][y]==false){
			visited[x][y]=true;
			if(dfs(x+1,y))return true;
		}
		if(ban[x][y+1]==ban[xs][ys]&&visited[x][y]==false){
			visited[x][y]=true;
			if(dfs(x,y+1))return true;
		}
		if(x>=2&&ban[x-1][y]==ban[xs][y]&&visited[x][y]==false){
			visited[x][y]=true;
			if(dfs(x-1,y))return true;
		}
		if(y>=2&&ban[x][y-1]==ban[xs][y]&&visited[x][y]=false;){
			visited[x][y]=true;
			if(dfs(x,y-1))return true;
		}
		return false;
	}


int main(){

	while(cin>>w>>h&&w&&h){
	cin>>xs>>ys>>xg>>yg>>n;
	for(int i=0;i<101;i++)
	for(int j=0;j<101;j++)ban[i][j]=0,visited[i][j]=false;
	
	for(int i=0;i<n;i++){
		int c,d,x,y;
		cin>>c>>d>>x>>y;
		if(!d){
			for(int i=x;i<x+4;i++){
				for(int j=y;j<y+2;j++){
					ban[i][j]=c;
				}
			}
		}
		else{
		for(int i=x;i<x+2;i++){
				for(int j=y;j<y+4;j++){
					ban[i][j]=c;
				}
			}
		}
	}
	
	if(dfs(xs,ys))cout<<"OK"<<endl;
	else cout<<"NG"<<endl;
	}
	return 0;
	}