#include <iostream>
&#160;
using namespace std;
&#160;
int map[101][101];
int xg, yg;
int w, h;
int col;
int dx[] = {0, 1, 0, -1};
int dy[] = {-1, 0, 1, 0};
bool flag;
&#160;
void dfs(int x, int y)
{
&#160;&#160;&#160;&#160;map[y][x] = 0;
&#160;
&#160;&#160;&#160;&#160;if (x == xg && y == yg) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;flag = true;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return ;
&#160;&#160;&#160;&#160;}
&#160;
&#160;&#160;&#160;&#160;for (int i = 0; i < 4; i++) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int nx = x + dx[i];
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int ny = y + dy[i];
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (nx < 0 || ny < 0 || nx >= w || ny >= h)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;continue;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else if (map[ny][nx] == col)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dfs(nx, ny);
&#160;&#160;&#160;&#160;}
}
&#160;
void setblock(int c, int d, int bx, int by)
{
&#160;&#160;&#160;&#160;int wlim = 4, hlim = 2;
&#160;
&#160;&#160;&#160;&#160;if (d == 1) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;wlim = 2;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;hlim = 4;
&#160;&#160;&#160;&#160;}
&#160;
&#160;&#160;&#160;&#160;for (int y = 0; y < hlim; y++)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for (int x = 0; x < wlim; x++)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;map[by + y][bx + x] = c;
}
&#160;
&#160;
int main()
{
&#160;&#160;&#160;&#160;while (cin >> w >> h, w || h) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int xs, ys;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int n;
&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for (int y = 0; y < h; y++)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for (int x = 0; x < w; x++)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;map[y][x] = 0;
&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> xs >> ys >> xg >> yg >> n;
&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;xs--, ys--, xg--, yg--;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for (int i = 0; i < n; i++) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int c, d, x, y;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> c >> d >> x >> y;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;x--, y--;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;setblock(c, d, x, y);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;col = map[ys][xs];
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;flag = false;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (col)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dfs(xs, ys);
&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (flag)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cout << "OK" << endl;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cout << "NG" << endl;
&#160;&#160;&#160;&#160;}
&#160;
&#160;&#160;&#160;&#160;return 0;
}