#include <bits/stdc++.h>
using namespace std;
long double a[101000], b[101000], l[101000];
long double a1, b1, ans = 1000 * 1000 * 1000;
long double dist(long double x1, long double y1, long double x2,
                 long double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
long double bridge(int i, int j) {
  return (dist(0, 0, a1, a[i]) + dist(a1, a[i], b1, b[j]) + l[j]);
}
int main() {
  int n, m, x, y;
  scanf("%d%d%d%d", &n, &m, &x, &y);
  a1 = x + .0, b1 = y + .0;
  for (int i = 0; i < n; i++) {
    scanf("%d", &x);
    a[i] = x + .0;
  }
  for (int i = 0; i < m; i++) {
    scanf("%d", &x);
    b[i] = x + .0;
  }
  for (int i = 0; i < m; i++) {
    scanf("%d", &x);
    l[i] = x + .0;
  }
  x = 0;
  for (int i = 0; i < m; i++) {
    int l = 0, r = n - 1;
    while (r - l >= 3) {
      int m1 = l + (r - l) / 3, m2 = r - (r - l) / 3;
      if (bridge(m1, i) > bridge(m2, i))
        l = m1;
      else
        r = m2;
    }
    for (int j = l - 1; j < r + 2; j++) {
      if (j < 0 || j >= n) continue;
      if (bridge(j, i) < ans) ans = bridge(j, i), x = j, y = i;
    }
  }
  printf("%d %d\n", x + 1, y + 1);
  return 0;
}
