#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
int n, m, aaa1, aaa2, last;
double A, B, ans, a[maxn];
pair<double, double> b[maxn];
double Relax(int x, int y) {
  double ret =
      sqrt(A * A + a[x] * a[x]) +
      sqrt((A - B) * (A - B) + (a[x] - b[y].first) * (a[x] - b[y].first)) +
      b[y].second;
  if (ret < ans) ans = ret, aaa1 = x, aaa2 = y;
  return ret;
}
int main() {
  scanf("%d%d%lf%lf", &n, &m, &A, &B);
  for (int i = 1; i <= n; ++i) scanf("%lf", &a[i]);
  for (int i = 1; i <= m; ++i) scanf("%lf", &b[i].first);
  for (int i = 1; i <= m; ++i) scanf("%lf", &b[i].second);
  sort(a + 1, a + n + 1);
  sort(b + 1, b + m + 1);
  ans = 999999999999999.0;
  for (int i = 1; i <= m; ++i) {
    int l = 1, r = n;
    for (int j = 1; j <= 30; ++j) {
      if (l > r) break;
      int m1 = l + (r - l) / 3;
      int m2 = r - (r - l) / 3;
      double tmp1 = Relax(m1, i), tmp2 = Relax(m2, i);
      if (tmp1 < tmp2)
        r = m2 - 1;
      else
        l = m1 + 1;
    }
  }
  printf("%d %d\n", aaa1, aaa2);
  return 0;
}
