#include<stdio.h>
#include<algorithm>
#include<queue>
using namespace std;
int dx[2][6]={{-1,-1,0,0,1,1},{-1,-1,0,0,1,1}};
int dy[2][6]={{-1,0,-1,1,-1,0},{1,0,-1,1,1,0}};
int bfs[110][110];
int m[110][110];
int main(){
	int a,b;
	while(scanf("%d%d",&a,&b),a){
		int c;scanf("%d",&c);
		queue<pair<int,int> >Q;
		for(int i=0;i<a;i++)for(int j=0;j<b;j++)bfs[i][j]=-1;
		for(int i=0;i<c;i++){
			int p,q;scanf("%d%d",&q,&p);
			p--;q--;
			bfs[p][q]=0;
			Q.push(make_pair(p,q));
		}
		while(Q.size()){
			int row=Q.front().first;
			int col=Q.front().second;
			Q.pop();
			int t=row%2;
			for(int i=0;i<6;i++){
				if(0<=row+dx[t][i]&&row+dx[t][i]<a&&0<=col+dy[t][i]&&col+dy[t][i]<b&&!~bfs[row+dx[t][i]][col+dy[t][i]]){
					bfs[row+dx[t][i]][col+dy[t][i]]=bfs[row][col]+1;
					Q.push(make_pair(row+dx[t][i],col+dy[t][i]));
				}
			}
		}
		int ret=0;
		int d;scanf("%d",&d);
		for(int i=0;i<d;i++){
			int p,q;scanf("%d%d",&q,&p);p--;q--;
			for(int j=0;j<a;j++)for(int k=0;k<b;k++)m[j][k]=-1;
			m[p][q]=0;
			Q.push(make_pair(p,q));
			while(Q.size()){
				int row=Q.front().first;
				int col=Q.front().second;
				Q.pop();
				int t=row%2;
				for(int i=0;i<6;i++){
					if(0<=row+dx[t][i]&&row+dx[t][i]<a&&0<=col+dy[t][i]&&col+dy[t][i]<b&&!~m[row+dx[t][i]][col+dy[t][i]]){
						m[row+dx[t][i]][col+dy[t][i]]=m[row][col]+1;
						Q.push(make_pair(row+dx[t][i],col+dy[t][i]));
					}
				}
			}
			int val=0;
			for(int j=0;j<a;j++)for(int k=0;k<b;k++)if(bfs[j][k]>m[j][k])val++;
			ret=max(val,ret);
		}
		printf("%d\n",ret);
	}
}