#include <bits/stdc++.h>   using namespace std;   int a, b, n, m;   int A[100010], B[100010], L[100010];   double dis(int a, int b, int c, int d) {     return sqrt(         double((a - c + 0.0) * (a - c + 0.0) + (b - d + 0.0) * (b - d + 0.0)));   }   double getK(int y) { return 1.0 * y * a / (b * 1.0); }   int find(double xx) {     int x = xx;     return upper_bound(A, A + n, x) - A;   }   int main() {     int ll, rr, id;     double ans = 0, tmp;     scanf( %d%d%d%d , &n, &m, &a, &b);     for (int i = 0; i < n; i++) scanf( %d , A + i);     for (int i = 0; i < m; i++) scanf( %d , B + i);     for (int i = 0; i < m; i++) scanf( %d , L + i);     ll = rr = 0;     ans = dis(0, 0, a, A[0]) + dis(a, A[0], b, B[0]) + L[0];     for (int i = 0; i < m; i++) {       double k = getK(B[i]);       id = find(k);       id = max(0, id - 2);       for (int j = id; j < n && j <= id + 4; j++) {         tmp = dis(0, 0, a, A[j]) + dis(a, A[j], b, B[i]) + 1.0 * L[i];         if (tmp < ans) ans = tmp, ll = j, rr = i;       }     }     printf( %d %d n , ll + 1, rr + 1);   }   