#include <bits/stdc++.h>
using namespace std;
#define MP make_pair
#define PB push_back
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define REP(i,n) for (int i=0;i<(n);i++)
int N,M;
int fld[100][100];
int data[4][50][50];
bool rec(int x,int y,int k){
	for(int i=0;i<M;i++){
		for(int j=0;j<M;j++){
			if(data[k][i][j]==-1)continue;
			if(fld[x+i][y+j]!=data[k][i][j]){
				return false;
			}
		}
	}
	return true;
}
int main() {
	while(cin>>N>>M&&N&&M) {
		int ansX=-1,ansY=-1;
		for(int i=0;i<N;i++)for(int j=0;j<N;j++)cin>>fld[j][i];
		for(int i=0;i<M;i++)for(int j=0;j<M;j++){
			cin>>data[0][j][i];
			data[1][i][M-j-1]=data[2][M-j-1][M-i-1]=data[3][M-i-1][j]=data[0][j][i];
		}
		for(int times=0;times<4;times++){
			for(int i=0;i<=N-M;i++){
				for(int j=0;j<=N-M;j++){
					if(rec(j,i,times)){
						bool f=false;
						for(int y=0;y<M;y++){
							for(int x=0;x<M;x++){
								if(data[times][x][y]!=-1){
									if(ansX==-1||(x<ansX)||(x==ansX&&y<ansY)){
										ansX=x+j;
										ansY=y+i;
										f=true;
										break;
									}
								}
							}
							if(f)break;
						}
					}
				}
			}
		}
		if(ansX==-1)cout<<"NA"<<endl;
		else cout<<ansX+1<<" "<<ansY+1<<endl;
	}
}