#include<iostream>

using namespace std;

int park[10][10],n;
int dx[]={2,2,1,0,-1,-2,-2,-2,-1,0,1,2},dy[]={0,-1,-2,-2,-2,-1,0,1,2,2,2,1};

bool dfs(int px,int py,int t)
{
	if(t==n)	return true;
	if(!(park[py][px]&(1<<t)))	return false;

	for(int i=0;i<12;i++){
		int xx=px+dx[i],yy=py+dy[i];
		if(0<=yy && yy<10 && 0<=xx && xx<10){
			if(dfs(xx,yy,t+1))	return true;
		}
	}
	return false;
}

int main()
{
	for(int px,py;cin>>px>>py,px||py;){
		for(int i=0;i<10;i++)for(int j=0;j<10;j++)park[i][j]=0;
		cin>>n;
		for(int k=0;k<n;k++){
			int sx,sy;	cin>>sx>>sy;
			for(int y=sy-1;y<=sy+1;y++)for(int x=sx-1;x<=sx+1;x++)
				if(0<=y && y<10 && 0<=x && x<10)
					park[y][x]|=1<<k;
		}
for(int i=0;i<10;i++){for(int j=0;j<10;j++)printf("%4d",park[i][j]);cout<<endl;}
		bool ok=false;
		for(int i=0;i<12;i++){
			int xx=px+dx[i],yy=py+dy[i];
			if(0<=yy && yy<10 && 0<=xx && xx<10){
				if(dfs(xx,yy,0)){
					ok=true;
					break;
				}
			}
		}
		cout<<(ok?"OK":"NA")<<endl;
	}

	return 0;
}