#include <bits/stdc++.h>
using namespace std;
int ay[100000], by[100000], l[100000];
int n;
double res = 1e12;
int aid, bid;
void compare(double v, int a, int b) {
  if (v < res) {
    res = v, aid = a, bid = b;
  }
}
int search(double v) {
  int l = 0, r = n - 1, mid;
  while (l <= r) {
    mid = (l + r) / 2;
    if (abs(ay[mid] - v) < 1e-12)
      return mid;
    else if (v > ay[mid])
      l = mid + 1;
    else
      r = mid - 1;
  }
  return mid;
}
int main() {
  int m, a, b, i, j, k;
  scanf("%d%d%d%d", &n, &m, &a, &b);
  for (i = 0; i < n; i++) scanf("%d", &ay[i]);
  for (i = 0; i < m; i++) scanf("%d", &by[i]);
  for (i = 0; i < m; i++) scanf("%d", &l[i]);
  for (i = 0; i < m; i++) {
    double y = a * 1.0 * by[i] / b;
    j = search(y);
    if (abs(ay[j] - y) < 1e-12)
      compare(sqrt(b * 1.0 * b + by[i] * 1.0 * by[i]) + l[i], j, i);
    else {
      compare(sqrt(a * 1.0 * a + ay[j] * 1.0 * ay[j]) +
                  sqrt((b - a) * 1.0 * (b - a) +
                       (by[i] - ay[j]) * 1.0 * (by[i] - ay[j])) +
                  l[i],
              j, i);
      if (ay[j] > y && j > 0)
        compare(sqrt(a * 1.0 * a + ay[j - 1] * 1.0 * ay[j - 1]) +
                    sqrt((b - a) * 1.0 * (b - a) +
                         (by[i] - ay[j - 1]) * 1.0 * (by[i] - ay[j - 1])) +
                    l[i],
                j - 1, i);
      if (ay[j] < y && j < n - 1)
        compare(sqrt(a * 1.0 * a + ay[j + 1] * 1.0 * ay[j + 1]) +
                    sqrt((b - a) * 1.0 * (b - a) +
                         (by[i] - ay[j + 1]) * 1.0 * (by[i] - ay[j + 1])) +
                    l[i],
                j + 1, i);
    }
  }
  printf("%d %d\n", aid + 1, bid + 1);
}
