#include <bits/stdc++.h>
using namespace std;
const int MaxN = 1 << 18;
int N, M;
double A, B, Y1[MaxN], Y2[MaxN], L[MaxN];
inline double FindDist(double X1, double Y1, double X2, double Y2) {
  return sqrt((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1));
}
inline double Dist(int idx, int idy) {
  return FindDist(0, 0, A, Y1[idx]) + FindDist(A, Y1[idx], B, Y2[idy]) + L[idy];
}
int main(void) {
  cin.sync_with_stdio(0);
  cin >> N >> M >> A >> B;
  for (int i = 0; i < N; i++) cin >> Y1[i];
  for (int i = 0; i < M; i++) cin >> Y2[i];
  for (int i = 0; i < M; i++) cin >> L[i];
  int idxA = 0, idxB = 0;
  for (int i = 0; i < M; i++) {
    int L = 0, R = N - 1;
    while (R - L > 2) {
      int M1 = (2 * L + R) / 3, M2 = (L + 2 * R) / 3;
      double Dist1 = Dist(M1, i), Dist2 = Dist(M2, i);
      if (Dist1 < Dist2)
        R = M2;
      else
        L = M1;
    }
    for (int j = L; j <= R; j++)
      if (Dist(j, i) < Dist(idxA, idxB)) {
        idxA = j;
        idxB = i;
      }
  }
  cout << idxA + 1 << " " << idxB + 1 << endl;
  return 0;
}
