#include <bits/stdc++.h>
const long long mod = (long long)1e9 + 7;
const int maxn = (int)4e5 + 2;
long long inf = 1LL << 60;
const double eps = 1e-9;
using namespace std;
template <class N>
inline void read(N &n) {
  N x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = 10 * x + ch - '0';
    ch = getchar();
  }
  n = x * f;
}
long long a[2001], b[2001];
int main() {
  ios_base::sync_with_stdio(0);
  int n, m;
  cin >> n;
  long long s1 = 0, s2 = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    s1 += a[i];
  }
  cin >> m;
  for (int i = 0; i < m; i++) {
    cin >> b[i];
    s2 += b[i];
  }
  long long diff = abs(s1 - s2);
  pair<int, int> ans1 = {-1, -1};
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      long long bs = s2 - b[j] + a[i];
      long long as = s1 - a[i] + b[j];
      if (diff > abs(as - bs)) {
        diff = abs(as - bs);
        ans1 = {i, j};
      }
    }
  }
  map<long long, pair<int, int> > mpa, mpb;
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      mpa[a[i] + a[j]] = {i, j};
    }
  }
  long long diff1 = inf;
  pair<int, int> ans[2];
  for (int i = 0; i < m; i++) {
    for (int j = i + 1; j < m; j++) {
      long long d = b[i] + b[j];
      auto it1 = mpa.lower_bound((s1 - s2 + 2 * d) / 2);
      if (it1 != mpa.begin()) it1--;
      int jj = 0;
      while (it1 != mpa.end() && jj <= 2) {
        long long diff2 = abs((s1 - it1->first + d) - (s2 - d + it1->first));
        if (diff1 > diff2) {
          diff1 = diff2;
          ans[1] = {i, j};
          ans[0] = it1->second;
        }
        jj++;
        it1++;
      }
    }
  }
  if (diff1 < diff) {
    cout << diff1 << endl;
    cout << 2 << endl;
    cout << ans[0].first + 1 << " " << ans[1].first + 1 << endl;
    cout << ans[0].second + 1 << " " << ans[1].second + 1 << endl;
  } else {
    cout << diff << endl;
    if (ans1.first == -1)
      cout << 0;
    else {
      cout << 1 << endl;
      cout << ans1.first + 1 << " " << ans1.second + 1;
    }
  }
  return 0;
}
