// 2010/12/28 Tazoe

#include <iostream>
using namespace std;

void rotate(int pic[52][52], int m)
{
	int tmp[52][52];

	for(int y=1; y<=m; y++)
		for(int x=1; x<=m; x++)
			tmp[x][m-y+1] = pic[y][x];

	for(int y=1; y<=m; y++)
		for(int x=1; x<=m; x++)
			pic[y][x] = tmp[y][x];
}

bool match(int sce[102][102], int n, int pic[52][52], int m, int y, int x)
{
	int yyyy = n+1;
	int xxxx = n+1;

	int yyy = 0;
	int xxx = 0;

	bool flg = true;

	for(int yy=m; yy>=1; yy--){
		for(int xx=m; xx>=1; xx--){
			if(pic[yy][xx]==-1)
				continue;
			if(sce[y+yy-1][x+xx-1]!=pic[yy][xx]){
				flg = false;
				break;
			}
			else{
				yyy = y+yy-1;
				xxx = x+xx-1;
			}
		}
		if(!flg)
			break;
	}

	if(flg)
		if(yyyy>yyy||(yyyy==yyy&&xxxx>xxx)){
			yyyy = yyy;
			xxxx = xxx;
		}

	rotate(pic, m);

	yyy = 0;
	xxx = 0;

	flg = true;

	for(int yy=m; yy>=1; yy--){
		for(int xx=m; xx>=1; xx--){
			if(pic[yy][xx]==-1)
				continue;
			if(sce[y+yy-1][x+xx-1]!=pic[yy][xx]){
				flg = false;
				break;
			}
			else{
				yyy = y+yy-1;
				xxx = x+xx-1;
			}
		}
		if(!flg)
			break;
	}

	if(flg)
		if(yyyy>yyy||(yyyy==yyy&&xxxx>xxx)){
			yyyy = yyy;
			xxxx = xxx;
		}

	rotate(pic, m);

	yyy = 0;
	xxx = 0;

	flg = true;

	for(int yy=m; yy>=1; yy--){
		for(int xx=m; xx>=1; xx--){
			if(pic[yy][xx]==-1)
				continue;
			if(sce[y+yy-1][x+xx-1]!=pic[yy][xx]){
				flg = false;
				break;
			}
			else{
				yyy = y+yy-1;
				xxx = x+xx-1;
			}
		}
		if(!flg)
			break;
	}

	if(flg)
		if(yyyy>yyy||(yyyy==yyy&&xxxx>xxx)){
			yyyy = yyy;
			xxxx = xxx;
		}

	rotate(pic, m);

	yyy = 0;
	xxx = 0;

	flg = true;

	for(int yy=m; yy>=1; yy--){
		for(int xx=m; xx>=1; xx--){
			if(pic[yy][xx]==-1)
				continue;
			if(sce[y+yy-1][x+xx-1]!=pic[yy][xx]){
				flg = false;
				break;
			}
			else{
				yyy = y+yy-1;
				xxx = x+xx-1;
			}
		}
		if(!flg)
			break;
	}

	if(flg)
		if(yyyy>yyy||(yyyy==yyy&&xxxx>xxx)){
			yyyy = yyy;
			xxxx = xxx;
		}

	if(yyyy==n+1&&xxxx==n+1)
		return false;
	else{
		cout << xxxx << ' ' << yyyy << endl;
		return true;
	}
}

int main()
{
	while(true){
		int n, m;
		cin >> n >> m;
		if(n==0&&m==0)
			break;

		int sce[102][102];
		for(int y=1; y<=n; y++)
			for(int x=1; x<=n; x++)
				cin >> sce[y][x];

		int pic[52][52];
		for(int y=1; y<=m; y++)
			for(int x=1; x<=m; x++)
				cin >> pic[y][x];

		bool flg = false;
		for(int y=1; y<=n-m+1; y++){
			for(int x=1; x<=n-m+1; x++){
				flg = match(sce, n, pic, m, y, x);
				if(flg)
					break;
			}
			if(flg)
				break;
		}

		if(!flg)
			cout << "NA" << endl;
	}

	return 0;
}