#include<cstdio>
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;
int w,h,xs,ys,xg,yg,n,c,d,x,y,nok,sc;
int fld[101][101];
int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
void dfs(int fx,int fy){
    if(fld[fy][fx]!=sc||fx<0||fx>w-1||fy<0||fy>h-1)return;
    if(fx==xg-1&&fy==yg-1){
        if(sc==fld[fy][fx])nok=1;
    }
    fld[fy][fx]=0;
    for(int i=0;i<4;i++){
        dfs(fx+dx[i],fy+dy[i]);
    }
}
signed main(){
    for(;;){
        cin>>w>>h;
        if(w==0&&h==0)break;
        cin>>xs>>ys;
        cin>>xg>>yg;
        cin>>n;
        nok=0;
        fill(fld[0],fld[0]+101*101,0);
        for(int i=0;i<n;i++){
            cin>>c>>d>>x>>y;
            x--,y--;
            if(d==0){
                for(int j=0;j<2;j++){
                    for(int k=0;k<4;k++){
                        fld[y+j][x+k]=c;
                    }
                }
            }
            if(d==1){
                for(int j=0;j<4;j++){
                    for(int k=0;k<2;k++){
                        fld[y+j][x+k]=c;
                    }
                }
            }
        }
        sc=fld[ys-1][xs-1];
        for(int j=0;j<h;j++){
            for(int k=0;k<w;k++){
                cout<<fld[j][k];
            }
            cout<<endl;
        }
        if(fld[0][0]!=0){
            dfs(0,0);
        }
        if(nok==1)cout<<"OK"<<endl;
        else cout<<"NG"<<endl;
    }
    return 0;
}