#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
#include <cmath>

using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int m, n;
    cin >> m >> n;

    // Đọc dãy A và B
    vector<pair<long long, int>> a(m), b(n);

    for (int i = 0; i < m; i++) {
        cin >> a[i].first;
        a[i].second = i + 1; // Lưu chỉ số ban đầu
    }

    for (int i = 0; i < n; i++) {
        cin >> b[i].first;
        b[i].second = i + 1; // Lưu chỉ số ban đầu
    }

    // Sắp xếp cả hai dãy
    sort(a.begin(), a.end());
    sort(b.begin(), b.end());

    long long min_absolute_sum = (long long)1e18; // Giá trị nhỏ nhất
    int pos_a = -1, pos_b = -1; // Lưu chỉ số kết quả

    // Tìm cặp tối ưu
    for (int i = 0; i < m; ++i) {
        long long target = -a[i].first; // Tìm giá trị gần 0 nhất
        int pos = lower_bound(b.begin(), b.end(), make_pair(target, 0)) - b.begin();
        int prev_pos = pos - 1;

        // Kiểm tra phần tử tại `pos`
        if (pos < n) {
            long long cur_sum = abs(a[i].first + b[pos].first);
            if (cur_sum < min_absolute_sum) {
                min_absolute_sum = cur_sum;
                pos_a = a[i].second;
                pos_b = b[pos].second;
            }
        }

        // Kiểm tra phần tử trước `pos`
        if (prev_pos >= 0) {
            long long cur_sum = abs(a[i].first + b[prev_pos].first);
            if (cur_sum < min_absolute_sum) {
                min_absolute_sum = cur_sum;
                pos_a = a[i].second;
                pos_b = b[prev_pos].second;
            }
        }
    }

    // In kết quả
    cout << pos_a << " " << pos_b << endl;

    return 0;
}