#include <bits/stdc++.h>

using namespace std;

void f(int set[][501],int m)
{
	int ans[100][100]={};

	for(int i=0;i<m;i++)
	{
		for(int j=0;j<m;j++)
		{
			ans[j][(m-1)-i]=set[i][j];
		}
	}
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<m;j++)
		{
			set[i][j]=ans[i][j];
		}
	}
}

void log(int set[][501],int m,int setcount)
{
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<m;j++)
		{
			printf("%02d ",set[i][j]); 
		}
		cout << endl;
	}

	cout << setcount << endl;
}

int main()
{
	int n,m;

	while(cin >> n >> m && n)
	{
		int flag=0;
		int setcount=0;
		int count=0;
 		int data[501][501]={};
 		int set[501][501]={};
 		int i,j,k,l;
 		int ans_x=100000,ans_y=100000;

 		for(i=0;i<n;i++)
	 		for(j=0;j<n;j++)
	 			cin >> data[i][j];

 		for(i=0;i<m;i++)
 		{
 			for(j=0;j<m;j++)
 			{
 				cin >> set[i][j];
 				if(set[i][j]>=0)setcount++;
 			}
 		}

 		for(int z=0;z<4;z++)
 		{
 			int first=0;
	 		for(int l=0;l<n-m+1;l++)
	 		{
	 			for(int k=0;k<n-m+1;k++)
	 			{
	 				count=0;
	 				for(i=0;i<m;i++)
		 			{
			 			for(j=0;j<m;j++)
			 			{
			 				if(set[i][j]==data[i+l][j+k])count++;
			 				if(count==setcount)flag=1;
			 			}
		 			}
		 			if(count==setcount)
		 			{
		 				for(i=0;i<m;i++)
		 				{
				 			for(j=0;j<m;j++)
				 			{
				 				if(set[i][j]==data[i+l][j+k] && !first)
				 				{
				 					ans_y=min(i+l+1,ans_y);
			 						if(ans_y==i+l+1)ans_x=j+k+1;
			 						first=1;
			 						break;
				 				}
				 			}
				 			if(first)break;
		 				}
		 			}
		 			if(first)break;
	 			}
	 			if(first)break;
		 	}
	 		f(set,m);
 		}
 		if(flag)cout << ans_x <<" "<< ans_y << endl;
 		else if(!flag)cout << "NA" << endl;
	}

    return 0;
}