# define _CRT_SECURE_NO_WARNINGS 1
# include <iostream>
# include <string>
# include <bitset>
# include <vector>
# include <algorithm>
# include <cstdlib>
# include <cstdio>
# include <cstring>
# include <cstdlib>
# include <iomanip>
# include <queue>
# include <sstream>
# include <climits>
# include <cmath>
# include <list>
# include <functional>
# include <string>
# include <ctime>
# include <set>
# include <map>
# include <stack>
# include <unordered_map>
using namespace std;
//# define M_PI 3.141592
# define INF ((int)(1<<30))
# define FOR(i,n) for(int i=0;i<(int)n;i++)
# define FORI(i,k,n) for(int i=k;i<(int)n;i++)
# define toRad 2.0*M_PI/360.0
# define inin(x) int x;cin>>x;
# define all(x) x.begin(),x.end()
# define debug(x) cout<<#x<<" :"<<x<<endl;
# define rep(i,n) for(int i=0;i<(int)n;i++)
# define EPS 1e-12
# define CHECK(i,a) FOR(i,a.size())cout<<#a<<"["<<i<<"] : "<<a[i]<<endl; 

int main()
{
	
	int x, y;
	while (cin >> x >> y&&x&&y)
	{
		x++; y++;
		int n; cin >> n;
		vector<int> m[15][15];
		for (int i = 0; i < n; i++)
		{
			int X, Y;
			cin >> X >> Y; X++; Y++;
			int DX[9] = { -1,0,1,-1,0,1,-1,0,1 },
				DY[9] = { 1,1,1,0,0,0,-1,-1,-1 };
			for (int j = 0; j < 9; j++)
			{
				m[X + DX[j]][Y + DY[j]].push_back(i);
			}
		}

		int dx[] = { -1,0,1,2,2,2,1,0,-1,-2,-2,-2 },
			dy[] = { 2,2,2,1,0,-1,-2,-2,-2,-1,0,1 };
		vector< pair<int,int> > a;
		a.push_back(pair<int, int>(x, y));
		for (int i = 0; i < n; i++)
		{
			vector< pair<int, int> > b;
			for (int j = 0; j < a.size(); j++)
			{
				for (int k = 0; k < 12; k++)
				{
					pair<int, int> next = a[j];
					next.first += dx[k];
					next.second += dy[k];
					if (next.first < 0 || next.second < 0)continue;
					if (count(all(m[next.first][next.second]),i))
					{
						b.push_back(next);
					}
				}
			}
			a = b;
		}
		if (a.size())cout << "OK" << endl;
		else cout << "NA" << endl;
	}



}