#include <stdio.h>
void radi(int n, int m, long int l[][m],long int u[][m],long int k[][m]){
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++){
            while(k[i][j]<l[i][j] && k[i][j]+1<u[i][j])
                for(int h=0;h<m;h++)
                    k[i][h]++;
            while(k[i][j]>u[i][j] && k[i][j]-1>l[i][j])
                for(int h=0;h<n;h++)
                    k[h][j]--;}
}
int provera(int n, int m, long int l[][m],long int u[][m],long int k[][m]){
    int f=1;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            if(k[i][j]<l[i][j] || k[i][j]>u[i][j])
                f=0;
    return f;
}
int main() {
    int t,n,m;
    scanf("%d",&t);
    for(int i=0;i<t;i++){
        scanf("%d%d",&n,&m);
        long int l[n][m],u[n][m],k[n][m];
        for(int j=0;j<n;j++)
            for(int s=0;s<m;s++)
                scanf("%d",&l[j][s]);
        for(int j=0;j<n;j++)
            for(int s=0;s<m;s++)
                scanf("%d",&u[j][s]);
        for(int j=0;j<n;j++)
            for(int s=0;s<m;s++)
                k[j][s]=0;
        radi(n,m,l,u,*k);
        if(provera(n,m,l,u,k)){
            printf("DA\n");
            for(int j=0;j<n;j++){
                for(int s=0;s<m;s++)
                    printf("%d ",k[j][s]);
                printf("\n");}
        }
        else
            printf("NE\n");
    }

    return 0;
}