#include <iostream>
#include <queue>
#define P pair<int,int>
using namespace std;
int main()
{
  P jump[] = { P(-1,-2), P(0,-2), P(1,-2), P(-2,-1), P(2,-1), P(-2,0),
	       P(2,0), P(-2,1), P(2,1), P(-1,2), P(0,2), P(1,2) };
  P area[] = { P(-1,-1), P(0,-1), P(1,-1), P(-1,0), P(0,0),
	       P(1,0), P(-1,1), P(0,1), P(1,1) };
  int j = sizeof(jump) / sizeof(jump[0]);
  int a = sizeof(area) / sizeof(area[0]);
  int x,y;
  while(cin >> x >> y,x || y){
    queue< pair<int, P > > q;
    q.push( pair<int,P >(0, P(x,y)) );
    int n;
    cin >> n;
    vector< P > v(n);
    for(int i=0; i<n; i++){
      cin >> x >> y;
      v[i] = P(x,y);
    }
    bool f = true;
    while(!q.empty()){
      pair<int, P > r = q.front(); q.pop();
      P pyon = r.second;
      P show = v[r.first];
      for(int x=0; x<j && f; x++){
	for(int y=0; y<a && f;y++){
	  if(pyon.first + jump[x].first == show.first + area[y].first &&
	     pyon.second + jump[x].second == show.second + area[y].second){
	    if(r.first+1 >= n) f = false; 
	    q.push( pair<int,P>(r.first+1,
		    P(pyon.first+jump[x].first,pyon.second+jump[x].second)));
	  }
	}
      }
    }
    if(f) cout << "NA" << endl;
    else cout << "OK" << endl;
  }
  return 0;
}