#include <bits/stdc++.h>
const int maxn = 100010;
double y11[maxn + 1], y22[maxn + 1];
double l[maxn + 1], a, b;
int m, n, ra, rb;
double result;
void init() {
  int i;
  scanf("%d%d%lf%lf", &m, &n, &a, &b);
  for (i = 1; i <= m; ++i) scanf("%lf", &y11[i]);
  for (i = 1; i <= n; ++i) scanf("%lf", &y22[i]);
  for (i = 1; i <= n; ++i) scanf("%lf", &l[i]);
}
double dist(double x1, double y1, double x2, double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
double yh(double y1, double y2, double l) {
  return dist(0, 0, a, y1) + dist(a, y1, b, y2) + l;
}
void work() {
  int i, j, k;
  double tmp;
  result = 1e20;
  j = 1;
  for (i = 1; i <= n; ++i) {
    while ((j < m) && (yh(y11[j + 1], y22[i], l[i]) < yh(y11[j], y22[i], l[i])))
      ++j;
    tmp = yh(y11[j], y22[i], l[i]);
    if (tmp < result) {
      result = tmp;
      ra = j;
      rb = i;
    }
  }
}
void output() { printf("%d %d\n", ra, rb); }
int main() {
  init();
  work();
  output();
  return 0;
}
