#include <bits/stdc++.h>
using namespace std;
int a, b, n, m;
int A[100010], B[100010], L[100010];
double dis(int a, int b, int c, int d) {
  return sqrt(
      double((a - c + 0.0) * (a - c + 0.0) + (b - d + 0.0) * (b - d + 0.0)));
}
double getK(int y) { return 1.0 * y * a / (b * 1.0); }
int find(double xx) {
  int x = xx;
  return upper_bound(A, A + n, x) - A;
}
int main() {
  int ll, rr, id;
  double ans = 0, tmp;
  scanf("%d%d%d%d", &n, &m, &a, &b);
  for (int i = 0; i < n; i++) scanf("%d", A + i);
  for (int i = 0; i < m; i++) scanf("%d", B + i);
  for (int i = 0; i < m; i++) scanf("%d", L + i);
  ll = rr = 0;
  ans = dis(0, 0, a, A[0]) + dis(a, A[0], b, B[0]) + L[0];
  for (int i = 0; i < m; i++) {
    double k = getK(B[i]);
    id = find(k);
    id = max(0, id - 2);
    for (int j = id; j < n && j <= id + 4; j++) {
      tmp = dis(0, 0, a, A[j]) + dis(a, A[j], b, B[i]) + 1.0 * L[i];
      if (tmp < ans) ans = tmp, ll = j, rr = i;
    }
  }
  printf("%d %d\n", ll + 1, rr + 1);
}
