#include <iostream>
#define BB 300
using namespace std;
int n,m,t;

int l[BB][BB],u[BB][BB],laza[BB],ulja[BB];
bool lazar(int laza[BB],int s){
    for(int i=1;i<=n;i++)
     {
        if(laza[i]>s)
            return false;
     }



 return true;

}
bool uglesa(int ulja[BB],int s){

    for(int i=1;i<=n;i++){

        if(ulja[i]<s)
           return false;

    }



 return true;

}
void ispis(int s){
for(int i=1;i<=n;i++){

    if(laza[i]==s){
       for(int j=1;j<=m;j++){
         printf("%d ",l[i][j]);



    }
    printf("\n");
 }
}
 for(int i=1;i<=n;i++){

    if(laza[i]==s){
       for(int j=1;j<=m;j++){
         printf("%d ",l[i][j]);



    }
    printf("\n");
 }
  }
}






int main()
{
    scanf("%d",&t);



   while(t--){
    scanf("%d%d",&n,&m);

    for(int i=1;i<=n;i++)
      {
          laza[i]=0;
         for(int j=1;j<=m;j++)
          {
              scanf("%d",&l[i][j]);
              laza[i]+=l[i][j];
          }
      }

     for(int i=1;i<=n;i++)
      {
          ulja[i]=0;
         for(int j=1;j<=m;j++)
          {
              scanf("%d",&u[i][j]);
              ulja[i]+=u[i][j];
          }
      }


         int s1=-1,s2=1;
        if(lazar(laza,s1) && uglesa(ulja,s1))
            {
                printf("DA\n");
                ispis(s1);

         }
         else if(lazar(laza,s2) && uglesa(ulja,s2))
                    {
                  printf("DA\n");
                 ispis(s2);

                    }



            else
             printf("NE\n");



   }





    return 0;
}