#include <bits/stdc++.h>
using namespace std;
int n, m, R1, R2;
double a, b, A[(int)1e5 + 10], B[(int)1e5 + 10], L[(int)1e5 + 10];
int main() {
  scanf("%d %d %lf %lf", &n, &m, &a, &b);
  for (int i = 0; i < n; ++i) scanf("%lf", &A[i]);
  for (int i = 0; i < m; ++i) scanf("%lf", &B[i]);
  for (int i = 0; i < m; ++i) scanf("%lf", &L[i]);
  double res = 1e9, c1, c2;
  for (int i = 0; i < m; ++i) {
    int l = 0, r = n - 1, m1, m2;
    while (r - l > 3) {
      m1 = l + (r - l) / 3, m2 = r - (r - l) / 3;
      c1 = sqrt(((a) * (a)) + ((A[m1]) * (A[m1]))) +
           sqrt(((a - b) * (a - b)) + ((A[m1] - B[i]) * (A[m1] - B[i]))) + L[i];
      c2 = sqrt(((a) * (a)) + ((A[m2]) * (A[m2]))) +
           sqrt(((a - b) * (a - b)) + ((A[m2] - B[i]) * (A[m2] - B[i]))) + L[i];
      if (c1 < c2)
        r = m2;
      else
        l = m1;
    }
    for (int j = l; j <= r; ++j) {
      c1 = sqrt(((a) * (a)) + ((A[j]) * (A[j]))) +
           sqrt(((a - b) * (a - b)) + ((A[j] - B[i]) * (A[j] - B[i]))) + L[i];
      if (c1 < res) res = c1, R1 = j, R2 = i;
    }
  }
  printf("%d %d\n", R1 + 1, R2 + 1);
  return 0;
}
