#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:100000000")
long long x[100500];
int yy[100500];
int main() {
  int n, m, a, b;
  int i;
  scanf("%d%d%d%d", &n, &m, &a, &b);
  for (i = 0; i < n; ++i) {
    scanf("%I64d", &x[i]);
    x[i] *= b;
  }
  for (i = 0; i < m; ++i) scanf("%d", &yy[i]);
  double dist = 1e9;
  int ans1, ans2;
  for (i = 0; i < m; ++i) {
    int y, l;
    scanf("%d", &l);
    y = yy[i];
    int pos = lower_bound(x, x + n, (long long)a * y) - x;
    if (pos < n) {
      double ndist =
          sqrt((double(x[pos]) / b) * (double(x[pos]) / b) + double(a) * a) +
          sqrt(double(b - a) * (b - a) +
               (y - double(x[pos]) / b) * (y - double(x[pos]) / b)) +
          l;
      if (ndist < dist) {
        dist = ndist;
        ans1 = pos;
        ans2 = i;
      }
    }
    pos--;
    if (pos >= 0) {
      double ndist =
          sqrt((double(x[pos]) / b) * (double(x[pos]) / b) + double(a) * a) +
          sqrt(double(b - a) * (b - a) +
               (y - double(x[pos]) / b) * (y - double(x[pos]) / b)) +
          l;
      if (ndist < dist) {
        dist = ndist;
        ans1 = pos;
        ans2 = i;
      }
    }
  }
  printf("%d %d\n", ans1 + 1, ans2 + 1);
  return 0;
}
