#include<iostream>
#include<queue>
#include<vector>
#include<utility>
#include<algorithm>

using namespace std;

#define REP(i,n); for(int i=0;i<(n);i++)

int vec1[]={0,1,-1,1,-1,0};
int vec2[]={1,1,0,0,-1,-1};

int t,n;
int table[200][200];

typedef pair<int,int> pii;
typedef pair<int,pii> piii;
queue<piii> q1;

int ans;

int solve(int y,int x){
	queue<piii> p;
	q1.push(make_pair(0,make_pair(y,x)));
	while(!q1.empty()){
		if(t <= q1.front().first)
			return 0;
		REP(i,6){
			int n_y = q1.front().second.first + vec1[i];
			int n_x = q1.front().second.second + vec2[i];
			if(table[n_y][n_x] = 0){
				ans++;
				table[n_y][n_x] = 1;
				q1.push(make_pair(q1.front().first + 1,make_pair(n_y,n_x)));
			}
		}
		q1.pop();
	}
	return 0;
}


int main(){
	while(cin>>t>>n,t+n){
		ans = 0;
		fill_n(table[0],200*200,0)
		REP(i,n){
			int x,y;
			cin>>x>>y;
			table[100+y][100+x] = 1;
		}
		int x,y;
		cin>>x>>y;
		table[100+y][100+x] = 1;
		solve(100+y,100+x);
		cout<<ans+1<<endl;
	}
	return 0;
}