#include <bits/stdc++.h>
using namespace std;
pair<int, pair<int, int> > A[2003 * 2003], B[2003 * 2003];
pair<int, int> a[2003], b[2003];
int m, n, r, s, x, y, i, j, asd;
long long t1, t2, mn;
bool h;
int main() {
  cin >> m;
  for (i = 1; i <= m; i++) {
    cin >> a[i].first;
    t1 += a[i].first;
    a[i].second = i;
  }
  cin >> n;
  for (i = 1; i <= n; i++) {
    cin >> b[i].first;
    t2 += b[i].first;
    b[i].second = i;
  }
  for (i = 1; i <= m; i++)
    for (j = i + 1; j <= m; j++)
      A[++r] = make_pair(a[i].first + a[j].first, make_pair(i, j));
  for (i = 1; i <= n; i++)
    for (j = i + 1; j <= n; j++)
      B[++s] = make_pair(b[i].first + b[j].first, make_pair(i, j));
  sort(a + 1, a + m + 1);
  sort(b + 1, b + n + 1);
  sort(A + 1, A + r + 1);
  sort(B + 1, B + s + 1);
  if (t1 < t2) {
    h = 1;
    swap(t1, t2);
    swap(m, n);
    swap(r, s);
    swap(a, b);
    swap(A, B);
  }
  mn = t1 - t2;
  for (i = j = 1; i <= m; i++) {
    while (abs(t1 - a[i].first + b[j].first - (t2 - b[j].first + a[i].first)) >
               abs(t1 - a[i].first + b[j + 1].first -
                   (t2 - b[j + 1].first + a[i].first)) &&
           j < n)
      j++;
    if (mn >
        abs(t1 - a[i].first + b[j].first - (t2 - b[j].first + a[i].first))) {
      mn = abs(t1 - a[i].first + b[j].first - (t2 - b[j].first + a[i].first));
      asd = 1;
      x = i;
      y = j;
    }
  }
  for (i = j = 1; i <= r && s; i++) {
    while (abs(t1 - A[i].first + B[j].first - (t2 - B[j].first + A[i].first)) >
               abs(t1 - A[i].first + B[j + 1].first -
                   (t2 - B[j + 1].first + A[i].first)) &&
           j < s)
      j++;
    if (mn >
        abs((t1 - A[i].first + B[j].first) - (t2 - B[j].first + A[i].first))) {
      mn = abs((t1 - A[i].first + B[j].first) - (t2 - B[j].first + A[i].first));
      asd = 2;
      x = i;
      y = j;
    }
  }
  cout << mn << endl << asd << endl;
  if (asd == 1) {
    if (!h)
      cout << a[x].second << " " << b[y].second;
    else
      cout << b[y].second << " " << a[x].second;
  } else if (asd) {
    if (!h) {
      cout << A[x].second.first << " " << B[y].second.first << endl;
      cout << A[x].second.second << " " << B[y].second.second;
    } else {
      cout << B[y].second.first << " " << A[x].second.first << endl;
      cout << B[y].second.second << " " << A[x].second.second;
    }
  }
  return 0;
}
