
#include<iostream>
using namespace std;
int main()
{
  int n,m,i,j,k,l,x,y;
  bool f,g;
  int pict[100][100],chip[50][50];
  /*
  int t[2][2]={1,2,3,4};
  for(i=0;i<2;i++,puts(""))for(j=0;j<2;j++)cout<<t[i][j];
  for(puts(""),i=0;i<2;i++,puts(""))for(j=0;j<2;j++)cout<<t[1-i][1-j];
  for(puts(""),i=0;i<2;i++,puts(""))for(j=0;j<2;j++)cout<<t[j][1-i];
  for(puts(""),i=0;i<2;i++,puts(""))for(j=0;j<2;j++)cout<<t[1-j][i];
  */
  while(cin>>n>>m,n|m){
    for(i=0;i<n;i++)for(j=0;j<n;j++)cin>>pict[i][j];
    for(i=0;i<m;i++)for(j=0;j<m;j++)cin>>chip[i][j];
    x=-1;
    f=true;
    for(i=0;f&&i<=n-m;i++)for(j=0;f&&j<=n-m;j++){
	g=true;
	for(k=0;k<m;k++)for(l=0;l<m;l++){
	    if(chip[k][l]!=-1&&pict[i+k][j+l]!=chip[k][l])g=false;
	  }
	if(g){
	  for(k=0;g&&k<m;k++)for(l=0;g&&l<m;l++){
	      if(chip[k][l]!=-1){x=j+l+1;y=i+k+1;g=false;}
	    }
	  f=false;
	}
      }
    f=true;
    for(i=0;f&&i<=n-m;i++)for(j=0;f&&j<=n-m;j++){
	g=true;
	for(k=0;k<m;k++)for(l=0;l<m;l++){
	    if(chip[m-k-1][m-l-1]!=-1&&pict[i+k][j+l]!=chip[m-k-1][m-l-1])g=false;
	  }
	if(g){
	  if((x==-1)||(y>i)||((y==i)&&(x>j))){
	    for(k=0;g&&k<m;k++)for(l=0;g&&l<m;l++){
		if(chip[m-k-1][m-l-1]!=-1){x=j+l+1;y=i+k+1;g=false;}
	      }
	  }
	  f=false;
	}
      }
    f=true;
    for(i=0;i<=n-m;i++)for(j=0;j<=n-m;j++){
	g=true;
	for(k=0;k<m;k++)for(l=0;l<m;l++){
	    if(chip[l][m-k-1]!=-1&&pict[i+k][j+l]!=chip[l][m-k-1])g=false;
	  }
	if(g){
	  if((x==-1)||(y>i)||((y==i)&&(x>j))){
	    for(k=0;g&&k<m;k++)for(l=0;g&&l<m;l++){
		if(chip[l][m-k-1]!=-1){x=j+l+1;y=i+k+1;g=false;}
	      }
	  }
	  f=false;
	}
      }
    f=true;
    for(i=0;f&&i<=n-m;i++)for(j=0;f&&j<=n-m;j++){
	g=true;
	for(k=0;k<m;k++)for(l=0;l<m;l++){
	    if(chip[m-l-1][k]!=-1&&pict[i+k][j+l]!=chip[m-l-1][k])g=false;
	  }
	if(g){
	  if((x==-1)||(y>i)||((y==i)&&(x>j))){
	    for(k=0;g&&k<m;k++)for(l=0;g&&l<m;l++){
		if(chip[m-l-1][k]!=-1){x=j+l+1;y=i+k+1;g=false;}
	      }
	  }
	  f=false;
	}
      }
    if(~x)cout<<x<<" "<<y<<endl;
    else puts("NA");
  }
}