#include <iostream>

using namespace std;

int main()
{
    int T;
    cin >> T;
    string tekst;
    for(int q=0;q<T;q++){
        int N,M;
        cin >> N >> M;
        long int l[N][M],u[N][M],p[N][M];
        for(int j=0;j<N;j++){
            for(int i=0;i<M;i++){
                cin >> l[j][i];
            }
        }
        for(int j=0;j<N;j++){
            for(int i=0;i<M;i++){
                cin >> u[j][i];
                p[j][i]=0;
            }
        }

        for(int j=0;j<N;j++){
            for(int i=0;i<M;i++){
                if(p[j][i]<l[j][i]){
                    for(int k=0;k<N;k++){
                        p[j][k]++;
                    }
                    i=0;
                }else if(p[j][i]>u[j][i]){
                    for(int k=0;k<M;k++){
                        p[k][i]--;
                    }
                    j=0;
                }
            }
        }
        bool netacan=false;
        for(int j=0;j<N;j++){
            for(int i=0;i<M;i++){
                if(p[j][i]<l[j][i]){
                    netacan=true;
                }else if(p[j][i]>u[j][i]){
                    netacan=true;
                }
            }
        }
        if(netacan){
            tekst+="NE";
        }else{
            tekst+="DA\n";
            for(int j=0;j<N;j++){
                for(int i=0;i<M;i++){
                    tekst+=std::to_string(p[j][i]) + " ";
                }
                tekst+= "\n";
            }
        }
    }
    cout << tekst;

    return 0;
}