#include <bits/stdc++.h>
using std::cin;
using std::cout;
std::pair<int, int> solve(int a, int b, const std::vector<int>& A,
                          const std::vector<int>& B,
                          const std::vector<int>& L) {
  std::pair<int, int> result;
  double k = (double)a / b;
  long long ab = 1LL * (b - a) * (b - a);
  long long aa = 1LL * a * a;
  double best = 1.0E100;
  for (size_t bIndex = 0; bIndex < B.size(); ++bIndex) {
    double y = k * B[bIndex];
    int index = (int)(std::lower_bound(A.begin(), A.end(), y) - A.begin());
    for (int i = std::max(0, index - 3),
             lim = std::min((int)A.size(), index + 4);
         i < lim; ++i) {
      long long dy = B[bIndex] - A[i];
      double d1 = sqrt((long double)(ab + dy * dy));
      long long yy = 1LL * A[i] * A[i];
      double d2 = sqrt((long double)(yy + aa));
      double dist = d1 + d2 + L[bIndex];
      if (dist < best) {
        best = dist;
        result.first = i;
        result.second = (int)bIndex;
      }
    }
  }
  return result;
}
int main() {
  std::ios_base::sync_with_stdio(false);
  int n, m, a, b;
  cin >> n >> m >> a >> b;
  std::vector<int> A(n), B(m), L(m);
  for (int& value : A) {
    cin >> value;
  }
  for (int& value : B) {
    cin >> value;
  }
  for (int& value : L) {
    cin >> value;
  }
  auto result = solve(a, b, A, B, L);
  cout << result.first + 1 << ' ' << result.second + 1 << '\n';
  return 0;
}
