#include <bits/stdc++.h>
using namespace std;
struct lugar {
  long long int x, y, dist;
  const bool operator<(const lugar &otro) const { return dist < otro.dist; }
};
vector<lugar> tur;
long long int dist(lugar a, lugar b) { return abs(a.x - b.x) + abs(a.y - b.y); }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n, h, a, b;
  cin >> a >> b >> n;
  tur.resize(n + 2);
  lugar esq1, esq2, esq3, esq4;
  lugar esquina1, esquina2, esquina3, esquina4;
  esquina1.x = 1;
  esquina1.y = 1;
  esquina2.x = a;
  esquina2.y = 1;
  esquina3.x = 1;
  esquina3.y = b;
  esquina4.x = a;
  esquina4.y = b;
  long long int dist1 = LONG_MAX, dist2 = LONG_MAX, dist3 = LONG_MAX,
                dist4 = LONG_MAX;
  for (int i = 1; i <= n; i++) {
    cin >> tur[i].x >> tur[i].y;
    if (dist(tur[i], esquina1) < dist1) {
      esq1 = tur[i];
      dist1 = dist(tur[i], esquina1);
    }
    if (dist(tur[i], esquina2) < dist2) {
      esq2 = tur[i];
      dist2 = dist(tur[i], esquina2);
    }
    if (dist(tur[i], esquina3) < dist3) {
      esq3 = tur[i];
      dist3 = dist(tur[i], esquina3);
    }
    if (dist(tur[i], esquina4) < dist4) {
      esq4 = tur[i];
      dist4 = dist(tur[i], esquina4);
    }
  }
  cin >> h;
  long long distancia = LONG_MAX;
  int salida;
  for (int i = 1; i <= h; i++) {
    lugar algo;
    cin >> algo.x >> algo.y;
    long long int dist2 = 0;
    dist2 = max(dist(algo, esq1),
                max(dist(algo, esq2), max(dist(algo, esq3), dist(algo, esq4))));
    if (dist2 < distancia) {
      distancia = dist2;
      salida = i;
    }
  }
  cout << distancia << endl << salida;
  return 0;
}
