#include <iostream>
#include <vector>

using namespace std;

int t,n,m,i,j,x;

void unos(vector<vector<int>>& lazar, vector<vector<int>>& ugljesa)
{
    lazar.resize(n);
    ugljesa.resize(n);
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
        {
            cin>>x;
            lazar[i].push_back(x);
        }
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
        {
            cin>>x;
            ugljesa[i].push_back(x);
        }
}

/*int dobij(int a, int b)
{
    if(a<=0 && 0<=b)
        return 0;
    if(a<0 && b<0)
        return min(abs(a),abs(b))*(-1);
    return min(a,b);
}

void uradi(vector<vector<int>>& momir, vector<vector<int>>& tmp, int ip, int jp,bool solved)
{
    if(ip==n)
    {
        solved=true;
        return;
    }
    if(jp==m)
    {
        uradi(momir,tmp,ip+1,0);
    }
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
            if(tmp[i][j]!=0)
                br++;
    if(br==0)
    {
        solved=true;
        return;
    }
    if(br==1)
    {
        solved=false;
        return;
    }
    if(tmp[ip][jp]==0)
    {
        uradi(momir,tmp,ip,jp+1);
        return;
    }
    int zaKolko=tmp[ip][jp];
    if(zaKolko>0)
    {
        for(int k=0; k<m; k++)
        {
            momir[ip][k]+=zaKolko;
            tmp[ip][k]=dobij(lazar[ip][k],ugljesa[ip][k]);
        }
        uradi(momir,)
    }

}

void rijesi(vector<vector<int>>& lazar, vector<vector<int>>& ugljesa)
{
    vector<vector<int>> momir(n);
    for(i=0; i<n; i++)
        momir[i].resize(m);
    vector<vector<int>> tmp(n);
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
            tmp[i].push_back(dobij(lazar[i][j],ugljesa[i][j]));
    /*for(i=0; i<n; i++)
        for(j=0; j<m; j++)
            cout<<tmp[i][j]<<" ";
    uradi(momir,tmp,0,0,false);
}*/

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>t;
    while(t--)
    {
        vector<vector<int>> lazar,ugljesa;
        cin>>n>>m;
        unos(lazar,ugljesa);
        cout<<"NE\n";
    }

    return 0;
}