#include <bits/stdc++.h>
using namespace std;
const long long int N = 1e5 + 5;
const long long int mod = 1e15 + 7;
long long int dx[] = {1, -1, 0, 0};
long long int dy[] = {0, 0, 1, -1};
long long int y[N], yy[N], len[N];
long long int n, m, low, high, mid1, mid2;
double ans = (double)mod;
long long int ans_n, ans_m;
long long int a, b;
double find_distance(double x, double y, double u, double v) {
  double temp = ((x - u) * (x - u) + (y - v) * (y - v));
  temp = sqrt(temp);
  return temp;
}
int main() {
  cin >> n >> m >> a >> b;
  for (long long int i = 1; i < n + 1; i++) {
    cin >> y[i];
  }
  for (long long int i = 1; i < m + 1; i++) {
    cin >> yy[i];
  }
  for (long long int i = 1; i < m + 1; i++) {
    cin >> len[i];
  }
  for (long long int i = 1; i < m + 1; i++) {
    low = 1;
    high = n;
    while ((high - low) > 5) {
      mid1 = low + (high - low) / 3;
      mid2 = low + 2 * (high - low) / 3;
      double dis1 = find_distance(0, 0, a, y[mid1]) +
                    find_distance(a, y[mid1], b, yy[i]) + len[i];
      double dis2 = find_distance(0, 0, a, y[mid2]) +
                    find_distance(a, y[mid2], b, yy[i]) + len[i];
      if (dis1 < dis2) {
        high = mid2;
      } else {
        low = mid1;
      }
    }
    for (long long int zz = low; zz < high + 1; zz++) {
      double temp = find_distance(0, 0, a, y[zz]) +
                    find_distance(a, y[zz], b, yy[i]) + len[i];
      if (temp < ans) {
        ans = temp;
        ans_n = zz;
        ans_m = i;
      }
    }
  }
  cout << ans_n << " " << ans_m << endl;
  return 0;
}
