#include <bits/stdc++.h>
using namespace std;
double len[100010];
pair<long long, int> y[100010];
int l[100010], y2[100010], p[100010];
int n, m;
long long a, b;
int bs(double key) {
  int l = 0, r = n - 1, mid;
  while (l < r) {
    mid = (l + r) / 2;
    if (y[mid].first >= key)
      r = mid;
    else
      l = mid + 1;
  }
  return l;
}
void cal(int h) {
  double y3 = (double)y2[h] * a / b, ans, tans;
  int ansid;
  int pos = bs(y3);
  ans = sqrt((b - a) * (b - a) +
             (y2[h] - y[pos].first) * (y2[h] - y[pos].first)) +
        sqrt(a * a + y[pos].first * y[pos].first);
  ansid = y[pos].second;
  if (y[pos].first >= y3 && pos > 0) {
    --pos;
    tans = sqrt((b - a) * (b - a) +
                (y2[h] - y[pos].first) * (y2[h] - y[pos].first)) +
           sqrt(a * a + y[pos].first * y[pos].first);
    if (ans > tans) ans = tans, ansid = pos;
  }
  len[h] = l[h] + ans;
  p[h] = ansid;
}
int main() {
  int ans = 0;
  scanf("%d%d", &n, &m);
  cin >> a >> b;
  for (int i = 0; i < n; ++i) scanf("%I64d", &y[i].first), y[i].second = i;
  for (int i = 0; i < m; ++i) scanf("%d", &y2[i]);
  for (int i = 0; i < m; ++i) scanf("%d", &l[i]);
  sort(y, y + n);
  for (int i = 0; i < m; ++i) cal(i);
  for (int i = 0; i < m; ++i)
    if (len[i] < len[ans]) ans = i;
  printf("%d %d", p[ans] + 1, ans + 1);
  return 0;
}
