#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
double gmin = 100000000000000017;
int a, b;
int Y1[100005], Y2[100005], L[100005];
double dist(double x1, double y1, double x2, double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
double f(int i, int j) {
  return dist(0, 0, a, Y1[i]) + L[j] + dist(a, Y1[i], b, Y2[j]);
}
int main() {
  int t, i, j, c, d, idx1, idx2, m, n, idx;
  scanf("%d", &n);
  scanf("%d", &m);
  scanf("%d", &a);
  scanf("%d", &b);
  for (i = 0; i < n; i++) scanf("%d", &Y1[i]);
  for (i = 0; i < m; i++) scanf("%d", &Y2[i]);
  for (i = 0; i < m; i++) scanf("%d", &L[i]);
  for (i = 0; i < m; i++) {
    int low = 0, high = n - 1;
    while (high - low >= 3) {
      int m1 = low + (high - low) / 3;
      int m2 = high - (high - low) / 3;
      if (f(m1, i) < f(m2, i))
        high = m2;
      else
        low = m1;
    }
    double mini = 1000000000000;
    for (j = low; j <= high; ++j) {
      if (f(j, i) < mini) {
        mini = f(j, i);
        idx = j;
      }
    }
    if (mini < gmin) {
      gmin = mini;
      idx1 = idx + 1;
      idx2 = i + 1;
    }
  }
  printf("%d ", idx1);
  printf("%d ", idx2);
  return 0;
}
