#include<iostream>
using namespace std ;

int N , M , tmp ;
int table[110][110] ;
int photo[4][60][60];

bool Cheak( int nx , int ny , int p ){
	for( int i=0 ; i<M ; i++ ){
		for( int j=0 ; j<M ; j++ ){
			if( photo[p][i][j] < 0 ) continue ;
			if( table[ny+i][nx+j] != photo[p][i][j] ) return false ;
		}
	}
	return true ;
}

void func(){
	
	for( int y=0 ; y<N-M+1 ; y++ ){
		for( int x=0 ; x<N-M+1 ; x++ ){
			for( int k=0 ; k<4 ; k++ ){
				if( Cheak( x , y , k ) ){
					for( int i=0 ; i<M ; i++ ){
						for( int j=0 ; j<M ; j++ ){
							if( photo[k][i][j] != -1 ){
								cout << x+j+1 << " " << y+i+1 << endl ;
								return ;
							}
						}
					}
				}
			}
		}
	}
	
	cout << "NA" << endl ;
}

int main(){
	
	while( cin >> N >> M , N ){
		for( int i=0 ; i<N ; i++ ){
			for( int j=0 ; j<N ; j++ ){
				cin >> table[i][j] ;
			}
		}
		for( int i=0 ; i<M ; i++ ){
			for( int j=0 ; j<M ; j++ ){
				cin >> tmp ;
				photo[0][i    ][j    ] = tmp ;
				photo[1][j    ][M-i-1] = tmp ;
				photo[2][M-i-1][M-j-1] = tmp ;
				photo[3][M-j-1][i    ] = tmp ;
			}
		}
		
		func() ;
	}
	
return 0 ;
}