#include <bits/stdc++.h>
const int MAXN = 100002;
const double EPS = 1e-6;
double dist(double x, double y) { return sqrt(x * x + y * y); }
int main() {
  int n, m, a, b;
  int lefty[MAXN], righty[MAXN], length[MAXN];
  scanf("%d %d %d %d", &n, &m, &a, &b);
  for (int i = 0; i < n; ++i) scanf("%d", &lefty[i]);
  for (int i = 0; i < m; ++i) scanf("%d", &righty[i]);
  for (int i = 0; i < m; ++i) scanf("%d", &length[i]);
  int pa, pb;
  double min_dist = std::numeric_limits<double>::max();
  int j = 0;
  for (int i = 0; i < m; ++i) {
    double d =
        dist(a, lefty[j]) + dist(b - a, righty[i] - lefty[j]) + length[i];
    while (j + 1 < n) {
      double next = dist(a, lefty[j + 1]) +
                    dist(b - a, righty[i] - lefty[j + 1]) + length[i];
      if (next >= d) break;
      d = next;
      ++j;
    }
    if (d < min_dist) {
      min_dist = d;
      pa = j, pb = i;
    }
  }
  printf("%d %d\n", pa + 1, pb + 1);
  return 0;
}
