#include <bits/stdc++.h>
using std::cerr;
using std::cin;
using std::clock;
using std::cos;
using std::cout;
using std::endl;
using std::make_pair;
using std::map;
using std::max;
using std::min;
using std::next_permutation;
using std::nth_element;
using std::pair;
using std::priority_queue;
using std::queue;
using std::random_shuffle;
using std::set;
using std::sin;
using std::sort;
using std::sqrt;
using std::stack;
using std::string;
using std::stringstream;
using std::swap;
using std::vector;
const long double PI = 3.14159265358979323846;
const long double gammama = 0.57721566490153286060;
const long double eps = 1e-13;
int main() {
  int n, m, a, b;
  cin >> n >> m >> a >> b;
  vector<int> left(n), right(m), l(m);
  vector<double> ld(n);
  for (int i = 0; i < n; ++i) {
    cin >> left[i];
    ld[i] = sqrt((double)((double)(a)*a + (double)(left[i]) * left[i]));
  }
  for (int i = 0; i < m; ++i) cin >> right[i];
  for (int i = 0; i < m; ++i) cin >> l[i];
  int ind = 0;
  pair<int, int> res;
  double dist = 1e9;
  for (int i = 0; i < m; ++i) {
    double xx = (double)(a)*right[i] / b;
    while (ind < n) {
      if (left[ind] < xx)
        ++ind;
      else
        break;
    }
    if (ind > 0) {
      double d = l[i] +
                 sqrt((double)((double)(b - a) * (b - a) +
                               (double)(right[i] - left[ind - 1]) *
                                   (right[i] - left[ind - 1]))) +
                 ld[ind - 1];
      if (d < dist) {
        dist = d;
        res = make_pair(ind, i + 1);
      }
    }
    if (ind < n) {
      double d = l[i] +
                 sqrt((double)((double)(b - a) * (b - a) +
                               (double)(right[i] - left[ind]) *
                                   (right[i] - left[ind]))) +
                 ld[ind];
      if (d < dist) {
        dist = d;
        res = make_pair(ind + 1, i + 1);
      }
    }
  }
  cout << res.first << " " << res.second << endl;
  return 0;
}
