#include <iostream>
#include <iomanip>
#include <vector>
#include <cmath>
#include <queue>
#include <algorithm>
#define shosu(x) fixed<<setprecision(x)
using namespace std;
typedef pair<int,int> P;

int sx,sy,n,tmpx,tmpy,nx[10],ny[10];

bool func(){
	int dx[12]={-2,-2,-2,-1,-1,0,0,1,1,2,2,2};
	int dy[12]={1,0,-1,2,-2,2,-2,2,-2,1,0,-1};
	int wx[9]={-1,-1,-1,0,0,0,1,1,1},wy[9]={1,0,-1,1,0,-1,1,0,-1};
	queue<P> que;
	que.push(P(sx,sy));
	for(int i=0;i<n;i++){
		char field[11][11]={0};
		for(int j=0;j<9;j++){
			int cnx=nx[i]+wx[j],cny=ny[i]+wy[j];
			if(cnx>=0&&cnx<=9&&cny>=0&&cny<=9){
				field[cnx][cny]='!';
			}
		}
		for(int j=que.size();j>0;j--){
			for(int k=0;k<12;k++){
				tmpx=que.front().first+dx[k];
				tmpy=que.front().second+dy[k];
				if(tmpx>=0&&tmpx<=9&&tmpy>=0&&tmpy<=9&&field[tmpx][tmpy]=='!'){
					field[tmpx][tmpy]='?';
					que.push(P(tmpx,tmpy));
					if(i==n-1) return true;
				}
			}
			que.pop();
		}
	}
	return false;
}

int main(){
	while(1){
		cin>>sx>>sy;
		if(sx==0&&sy==0) break;
		cin>>n;
		for(int i=0;i<n;i++){
			cin>>nx[i]>>ny[i];
		}
		if(func()) cout<<"OK"<<endl;
		else cout<<"NA"<<endl;
	}
}