#include <bits/stdc++.h>
using namespace std;
double intersection(double a, double b, double yb) {
  return (double)yb * a / b;
}
double dist(double a, double b, double ya, double yb) {
  return sqrt((b - a) * (b - a) + (yb - ya) * (yb - ya));
}
int main() {
  int n, m;
  double a, b;
  cin >> n >> m >> a >> b;
  vector<double> ya(n);
  vector<double> da(n);
  vector<double> yb(m);
  vector<double> lb(m);
  for (int i = 0; i < n; i++) {
    cin >> ya[i];
    da[i] = sqrt(a * a + ya[i] * ya[i]);
  }
  for (int i = 0; i < m; i++) cin >> yb[i];
  for (int i = 0; i < m; i++) cin >> lb[i];
  double minpath = 100000000;
  int opti = 0, optj = 0;
  for (int i = 0, j = 0; i < m; i++) {
    double intersec = intersection(a, b, yb[i]);
    while (intersec > ya[j] && j < n - 1) j++;
    double cand1 = lb[i] + da[j] + dist(a, b, ya[j], yb[i]);
    if (cand1 < minpath) {
      minpath = cand1;
      opti = i;
      optj = j;
    }
    if (j > 0 && intersec < ya[j]) {
      double cand2 = lb[i] + da[j - 1] + dist(a, b, ya[j - 1], yb[i]);
      if (cand2 < minpath) {
        minpath = cand2;
        opti = i;
        optj = j - 1;
      }
    }
  }
  cout << optj + 1 << " " << opti + 1 << endl;
}
