#include <bits/stdc++.h>
using namespace std;
long long const INF = 2147483647, R_INF = 9223372036854775807, MOD = 1e9 + 7;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, m, n_sum = 0, m_sum = 0;
  cin >> n;
  vector<long long> n_input(n);
  for (long long &i : n_input) cin >> i, n_sum += i;
  cin >> m;
  vector<long long> m_input(m);
  for (long long &i : m_input) cin >> i, m_sum += i;
  long long ans = abs(n_sum - m_sum);
  vector<pair<long long, long long>> jwab;
  for (long long i = (0); i < (n); i++) {
    for (long long j = (0); j < (m); j++) {
      long long cur_ans =
          abs((n_sum - 2 * n_input[i]) - (m_sum - 2 * m_input[j]));
      if (cur_ans < ans) {
        ans = cur_ans;
        jwab.clear();
        jwab.push_back({i, j});
      }
    }
  }
  map<long long, pair<long long, long long>> M;
  for (long long i = (0); i < (n); i++)
    for (long long j = (i + 1); j < (n); j++)
      M[2 * (n_input[i] + n_input[j])] = {i, j};
  for (long long i = (0); i < (m); i++) {
    for (long long j = (i + 1); j < (m); j++) {
      long long cur_ans = n_sum - (m_sum - 2 * (m_input[i] + m_input[j]));
      auto it = M.lower_bound(cur_ans);
      if (it != M.begin()) it--;
      for (long long TC = (0); TC < (2); TC++) {
        if (it == M.end()) break;
        long long new_ans = abs(cur_ans - it->first);
        if (new_ans < ans) {
          ans = new_ans;
          jwab.clear();
          jwab.push_back({it->second.first, i});
          jwab.push_back({it->second.second, j});
        }
        it++;
      }
    }
  }
  cout << ans << endl;
  cout << jwab.size() << endl;
  for (auto i : jwab) {
    cout << i.first + 1 << " " << i.second + 1 << endl;
  }
}
