#include<iostream>
using namespace std;
int N,M;
int W[100][100],p[50][50];
int get(int i,int j,int r)
{
	return r==0?p[i][j]:r==1?p[j][M-i-1]:r==2?p[M-i-1][M-j-1]:p[M-j-1][i];
}
main()
{
	while(cin>>N>>M,N)
	{
		for(int i=0;i<N;i++)for(int j=0;j<N;j++)cin>>W[i][j];
		for(int i=0;i<M;i++)for(int j=0;j<M;j++)cin>>p[i][j];
		int ansx=N,ansy=N;
		for(int i=0;i<=N-M;i++)for(int j=0;j<=N-M;j++)
		{
			for(int r=0;r<4;r++)
			{
				bool now=true;
				int x=-1,y=-1;
				for(int I=0;now&&I<M;I++)for(int J=0;J<M;J++)
				{
					int a=W[i+I][j+J],b=get(I,J,r);
					if(b>=0&&b!=a)
					{
						now=false;
						break;
					}
					if(b>=0&&x<0)x=i+I,y=j+J;
				}
				if(now)
				{
					if(ansx>x||ansx==x&&ansy>y)ansx=x,ansy=y;
				}
			}
		}
		if(ansx==N)cout<<"NA"<<endl;
		else cout<<ansy+1<<" "<<ansx+1<<endl;
	}
}

