#include<stdio.h>
#define INF 100
int p[100][100];
int bp[50][50];
int cbp[4][50][50];
int i,j;
int m,n;
int ax,ay;

int min(int a,int b){return a<b?a:b;}

int main(){
	while(1){
		scanf("%d %d",&n,&m);
		if(n==0&&m==0)return 0;
		ax=INF;ay=INF;
		for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&p[i][j]);
		for(i=0;i<m;i++)for(j=0;j<m;j++)scanf("%d",&bp[i][j]);
		for(i=0;i<m;i++)for(j=0;j<m;j++){			
			cbp[0][i][j]=bp[i][j];
			cbp[1][i][j]=bp[m-j-1][i];
			cbp[2][i][j]=bp[m-i-1][m-j-1];
			cbp[3][i][j]=bp[j][m-i-1];
		}
		bool f;
		bool up=false;
		for(i=0;i<n-m+1;i++)for(j=0;j<n-m+1;j++){
			for(int v=0;v<4;v++){
				f=true;
				for(int k=0;k<m;k++)for(int l=0;l<m;l++){
					if(cbp[v][k][l]!=-1&&cbp[v][k][l]!=p[i+k][j+l])f=false;
				}
				if(f){	
					for(int k=0;k<m;k++){
						for(int l=0;l<m;l++){
							if(cbp[v][k][l]==p[i+k][j+l]){
								if(i+k<ax||(i+k==ax&&j+l<ay)){
									ax=i+k;
									ay=j+l;
								}
								up=true;
							}
						}
					}
				}
			}
			if(up)goto end;
		}
end:
		if(ax==100)printf("NA\n");
		else printf("%d %d\n",ay+1,ax+1);
	}
}