#include <iostream>

using namespace std;

int main()
{
    int t ;
    cin >> t ;
    for(int k=0 ; k<t ; k++){
        int n , m ;
        cin >> n >> m ;
        int l[n][m] , u[n][m] ;
        for(int i=0 ; i<n ; i++){
            for(int j=0 ; j<m ; j++){
                cin >> l[i][j] ;
            }
        }
        for(int i=0 ; i<n ; i++){
            for(int j=0 ; j<m ; j++){
                cin >> u[i][j] ;
            }
        }
        int res[n][m] ;
         for(int i=0 ; i<n ; i++){
            for(int j=0 ; j<m ; j++){
                res[i][j]=0 ;
            }
        }
        int mx=l[0][0] ;
        int idm=0 ;
        for(int i=1 ; i<m ; i++){
            if(l[0][i]>mx){
                mx=l[0][i] ;
                idm=i ;
            }
        }
        for(int i=0 ; i<m ; i++){
            res[0][i]=l[0][i] ;
            for(int j=1 ; j<n ; j++){
                res[j][i]+=l[0][i]-mx ;
            }
        }
        int x ;
        for(int i=1 ; i<n ; i++){
            x=l[i][0]-res[i][0] ;
            res[i][0]=l[i][0] ;
            for(int j=1 ; j<m ; j++){
                res[i][j]+=x ;
            }
        }
        int t=0 ;
        for(int i=0 ; i<n ; i++){
            for(int j=0 ; j<m ; j++){
                if(res[i][j]<l[i][j] || res[i][j]>u[i][j]){
                    t=1 ;
                }
            }
        }
        if(t==1){
            cout << "NE" << endl  ;
        }
        else{
            cout << "DA" << endl ;
            for(int i=0 ; i<n ; i++){
                for(int j=0 ; j<m ; j++){
                cout << res[i][j] << " " ;
            }
                cout << endl ;
            }
        }


    }
    return 0;
}