#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <complex>
#include <cstring>
#include <cstdlib>
#include <string>
#include <cmath>
#include <queue>
using namespace std;

#define REP(i,n) for(int i=0;i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()
const int INF = 1<<29;

typedef pair<int, int> pii;

int dist(pii a, pii b) {
  int res = abs(a.second-b.second);
  int r = (res + 1) / 2;
  if (!(a.second % 2 ^ b.second % 2)) {
    if (b.first < a.first - r || a.first + r < b.first)
      res += min(abs(b.first - (a.first-r)), abs(b.first - (a.first+r)));
  } else if (a.second % 2) {
    if (b.first < a.first - r || a.first + r - 1 < b.first)
      res += min(abs(b.first - (a.first-r)), abs(b.first - (a.first+r-1)));    
  } else {
    if (b.first < a.first - r+1 || a.first + r < b.first)
      res += min(abs(b.first - (a.first-r+1)), abs(b.first - (a.first+r)));
  }
  return res;
}

int main() {
  int m, n;
  while(cin >> m, m) {
    cin >> n;
    int s;
    cin >> s;
    pii shop[s+1];
    REP(i,s) {
      int x, y;
      cin >> x >> y;
      shop[i] = pii(x,y);
    }
    int t;
    cin >> t;
    int ans = 0;
    REP(j,t) {
      int p, q;
      cin >> p >> q;
      shop[s] = pii(p,q);
      int res = 0;
      for(int y=1;y<=n; ++y) {
        for(int x=1;x<=m; ++x) {
          int mi = INF;
          int hoge = -1;
          REP(i, s+1) {
            if (mi > dist(pii(x,y), shop[i])) {
              mi = dist(pii(x,y), shop[i]);
              hoge = i;
            } else if (mi == dist(pii(x,y), shop[i])) {
              hoge = -1;
            }
          }
          //   cout << hoge << " ";
          if (hoge == s) res++;
        }
//        cout << endl;
      }
      //     cout << res << endl;
      ans = max(ans, res);
    }
    cout << ans << endl;
  }
}