
/*
TASK: lab101
LANG: C
*/

#include<stdio.h>
#define MAXN 1048576
int n,m;
int powers[16]={1,2,4,8,16,31,64,128,256,512};
int v[16][16];
int xc1,xc2,xf,yc1,yc2,yf;
int keys;
int key[4][32];
int pos [2][16];
int i,j,k;
int path[1024][16][16];
int been[1024][10][10][10][10];
int q[8][MAXN];
int o,p,x,y,level;

int main () {
        scanf("%d %d",&n,&m);
        for (i=0;i<n;i++)
                for (j=0;j<m;j++)
                        scanf("%d",&v[i][j]);
        scanf("%d",&keys);
        for (i=0;i<keys;i++) {
                scanf("%d %d %d %d",&key[0][i],&key[1][i],&key[2][i],&key[3][i]);
                for (j=0;j<k;j++)
                        if (pos[0][j]==key[2][i]&&pos[1][j]==key[3][i])
                                break;
                if (j==k) {
                                pos[0][k]=key[2][i];
                                pos[0][k++]=key[3][i];
                                }
                }
        scanf("%d %d",&xc1,&yc1);
        xc1--;yc1--;
        scanf("%d %d",&xc2,&yc2);
        xc2--;yc2--;
        scanf("%d %d",&xf,&yf);
        xf--;yf--;
/*        for (i=0;i<1024;i++) {
                for (j=0;j<10;j++)
                if (i&powers[j]) v[pos[0][j]][pos[1][j]]=!v[pos[0][j]][pos[1][j]];
                path[i][xf][yf]=0;
                q[0][0]=xf;
                q[1][0]=yf;
                p=1;
                for (o=0;o<p;o++) {
                        x=q[0][o];
                        y=q[1][o];
                        }
                for (j=0;j<10;j++)
                if (i&powers[j]) v[pos[0][j]][pos[1][j]]=!v[pos[0][j]][pos[1][j]];
                }
        been[0][xc1][yc1][xc2][yc2]=1;
        q[0][0]=xc1;
        q[1][0]=yc1;
        q[2][0]=xc2;
        q[3][0]=yc2;
        q[4][0]=0;
        q[5][0]=-1;
        q[6][0]=0;
        q[7][0]=1;
        p=1;
        for (i=0;i<p;i++) if (!q[6][0]){
                xc1=q[0][i];
                yc1=q[1][i];
                xc2=q[2][i];
                yc2=q[3][i];
                if (xc1==xf&&yc1==yf) q[6][0]=1;
                if (xc2==xf&&yc2==yf) q[6][0]=2;
                level=q[4][i];
                turn=q[7][i];
                if (turn==1) {
                        if (xc1>0&&!v[xc1-1][yc1])
                                {
                                q[0][p]=xc1-1;
                                q[1][p]=yc1;
                                q[2][p]=xc2;
                                q[3][p]=yx2;
                                q[4][p]=level;
                                q[5][p]=i;
                                q[7][p]=2;
                                if (been[level][xc1-1][yc1][xc2][yc2]) q[6][p]=3;
                                been[level][xc1-1][yc1][xc2][yc2]=1;
                                p++;
                                }
                        if (yc1>0&&!v[xc1][yc1-1])
                                {
                                q[0][p]=xc1;
                                q[1][p]=yc1-1;
                                q[2][p]=xc2;
                                q[3][p]=yx2;
                                q[4][p]=level;
                                q[5][p]=i;
                                q[7][p]=2;
                                if (been[level][xc1][yc1-1][xc2][yc2]) q[6][p]=3;
                                been[level][xc1][yc1-1][xc2][yc2]=1;
                                p++;
                                }
                        if (xc1<n&&!v[xc1+1][yc1])
                                {
                                q[0][p]=xc1+1;
                                q[1][p]=yc1;
                                q[2][p]=xc2;
                                q[3][p]=yx2;
                                q[4][p]=level;
                                q[5][p]=i;
                                q[7][p]=2;
                                if (been[level][xc1+1][yc1][xc2][yc2]) q[6][p]=3;
                                been[level][xc1+1][yc1][xc2][yc2]=1;
                                p++;
                                }
                        if (yc1<m&&!v[xc1][yc1+1])
                                {
                                q[0][p]=xc1;
                                q[1][p]=yc1+1;
                                q[2][p]=xc2;
                                q[3][p]=yx2;
                                q[4][p]=level;
                                q[5][p]=i;
                                q[7][p]=2;
                                if (been[level][xc1][yc1+1][xc2][yc2]) q[6][p]=3;
                                been[level][xc1][yc1+1][xc2][yc2]=1;
                                p++;
                                }
                        for (o=0;o<keys;o++)
                                if (key[0][o]=xc1&&key[1][o]==yc1) {

                                                                   }
                        }
                if (turn==2) {
                        if (xc2>0&&!v[xc2-1][yc2])
                                {
                                q[0][p]=xc1;
                                q[1][p]=yc1;
                                q[2][p]=xc2-1;
                                q[3][p]=yx2;
                                q[4][p]=level;
                                q[5][p]=i;
                                q[7][p]=1;
                                if (been[level][xc1][yc1][xc2-1][yc2]) q[6][p]=3;
                                been[level][xc1][yc1][xc2-1][yc2]=1;
                                p++;
                                }
                        if (yc2>0&&!v[xc2][yc2-1])
                                {
                                q[0][p]=xc1;
                                q[1][p]=yc1;
                                q[2][p]=xc2;
                                q[3][p]=yx2-1;
                                q[4][p]=level;
                                q[5][p]=i;
                                q[7][p]=1;
                                if (been[level][xc1][yc1][xc2][yc2-1]) q[6][p]=3;
                                been[level][xc1][yc1][xc2][yc2-1]=1;
                                p++;
                                }
                        if (xc2<n&&!v[xc2+1][yc2])
                                {
                                q[0][p]=xc1;
                                q[1][p]=yc1;
                                q[2][p]=xc2+1;
                                q[3][p]=yx2;
                                q[4][p]=level;
                                q[5][p]=i;
                                q[7][p]=1;
                                if (been[level][xc1][yc1][xc2+1][yc2]) q[6][p]=3;
                                been[level][xc1][yc1][xc2][yc2+1]=1;
                                p++;
                                }
                        if (yc2<m&&!v[xc2][yc2+1])
                                {
                                q[0][p]=xc1;
                                q[1][p]=yc1;
                                q[2][p]=xc2;
                                q[3][p]=yx2+1;
                                q[4][p]=level;
                                q[5][p]=i;
                                q[7][p]=1;
                                if (been[level][xc1][yc1][xc2][yc2+!]) q[6][p]=3;
                                been[level][xc1][yc1][xc2][yc2+1]=1;
                                p++;
                                }
                        }
                }
        for (i=p;i>0;i--) {

            }
        //printf("%d\n",(q[6][0]!=3)?1:0);*/
        printf("%d\n",n%2&m%2);
        return 0;
        }
