#include <bits/stdc++.h>
using namespace std;
const long long maxn = 100005, inf = 1000000000000000ll;
long long n, m, c = 1, o, up[maxn];
long double ans[maxn], ansi, d, mini, a, b, first[maxn], second[maxn], l[maxn];
long double e(long double x1, long double y1, long double x2, long double y2) {
  long double k1, k2;
  k1 = x1 - x2;
  k2 = y1 - y2;
  k1 *= k1;
  k2 *= k2;
  return (long double)(sqrt(k1 + k2));
}
int main() {
  ios::sync_with_stdio(false);
  cout << fixed << setprecision(3);
  cin >> n >> m >> a >> b;
  for (int i = 1; i <= n; i++) {
    cin >> first[i];
  }
  for (int i = 1; i <= m; i++) {
    cin >> second[i];
  }
  for (int i = 1; i <= m; i++) {
    cin >> l[i];
  }
  for (int i = 1; i <= m; i++) {
    ansi = (long double)(inf);
    for (int j = c; j <= n; j++) {
      o = j;
      d = e(0, 0, a, first[j]) + e(a, first[j], b, second[i]);
      if (d > ansi) {
        o = j - 1;
        ans[i] = ansi + (long double)(l[i]);
        up[i] = j - 1;
        break;
      } else {
        if (j == n) {
          o = j;
          ans[i] = d + (long double)(l[i]);
          up[i] = j;
          break;
        }
        ansi = d;
      }
    }
    c = o;
  }
  mini = (long double)(inf);
  for (int i = 1; i <= m; i++) {
    mini = min(mini, ans[i]);
  }
  for (int i = 1; i <= m; i++) {
    if (ans[i] == mini) {
      cout << up[i] << " " << i << endl;
      break;
    }
  }
  return 0;
}
