#include<iostream>
#define rep(i,n) for(int i=0;i<n;i++)
#define ck(a,b) (0<=a&&a<b)
#define INF 1<<30
using namespace std;
int dx0[]={0,1,0,-1,-1,-1},dx1[]={1,1,1,0,-1,0},dy[]={-1,0,1,1,0,-1};
int md[100][100],td[100][100],s,t,sx[10],sy[10],tx[10],ty[10],m,n,tc,mc;
void rec(int x,int y,int a){
	td[x][y]=a;
	rep(d,6){
		int nx=x+(y%2?dx1[d]:dx0[d]),ny=y+dy[d];
		if(ck(nx,m)&&ck(ny,n)&&td[nx][ny]>a+1)rec(nx,ny,a+1);
	}
}
int main(){
	while(cin>>m>>n>>s,m){
		rep(i,m)rep(j,n)md[i][j]=INF;
		rep(i,s)cin>>sx[i]>>sy[i],sx[i]--,sy[i]--;
		cin>>t; rep(i,t)cin>>tx[i]>>ty[i],tx[i]--,ty[i]--;
		rep(i,s){
			rep(k,m)rep(l,n)td[k][l]=INF;
			rec(sx[i],sy[i],0);
			rep(k,m)rep(l,n)if(md[k][l]>td[k][l])md[k][l]=td[k][l];
		}
		mc=0; rep(i,t){
			tc=0;
			rep(k,m)rep(l,n)td[k][l]=INF;
			rec(tx[i],ty[i],0);
			rep(k,m)rep(l,n)if(md[k][l]>td[k][l])tc++;
			if(mc<tc)mc=tc;
		}
		cout<<mc<<endl;
	}
	return 0;
}