#include <bits/stdc++.h>
using namespace std;
template <typename _T>
void read(_T &x) {
  _T f = 1;
  x = 0;
  char s = getchar();
  while (s > '9' || s < '0') {
    if (s == '-') f = -1;
    s = getchar();
  }
  while (s >= '0' && s <= '9') {
    x = (x << 3) + (x << 1) + (s ^ 48);
    s = getchar();
  }
  x *= f;
}
template <typename _T>
_T Fabs(_T x) {
  return x < 0 ? -x : x;
}
long long n, m;
long long a[2005], b[2005], suma, sumb;
long long Sum, sum, ans[5][3], tot, cnt;
struct ming {
  long long val, u, v;
  ming() {}
  ming(long long Val, long long U, long long V) {
    val = Val;
    u = U;
    v = V;
  }
  bool friend operator<(const ming &x, const ming &y) { return x.val > y.val; }
} p[2005 * 2005];
signed main() {
  read(n);
  for (int i = 1; i <= n; i++) read(a[i]), suma += a[i];
  read(m);
  for (int i = 1; i <= m; i++) read(b[i]), sumb += b[i];
  Sum = suma - sumb;
  sum = Fabs(Sum);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
      if (Fabs(Sum - 2ll * a[i] + 2ll * b[j]) < sum)
        sum = Fabs(Sum - 2ll * a[i] + 2ll * b[j]), tot = 1, ans[0][0] = i,
        ans[0][1] = j;
  for (int i = 1; i <= m; i++)
    for (int j = i + 1; j <= m; j++)
      p[cnt++] = ming(2ll * b[i] + 2ll * b[j], i, j);
  sort(p, p + cnt);
  for (int i = 1; i <= n; i++)
    for (int j = i + 1; j <= n; j++) {
      long long tmp = 2ll * a[i] + 2ll * a[j] - Sum;
      long long x = lower_bound(p, p + cnt, ming(tmp, 0, 0)) - p;
      if (x != cnt) {
        long long tmp1 = Fabs(Sum - 2ll * a[i] - 2ll * a[j] + p[x].val);
        if (tmp1 < sum) {
          sum = tmp1, tot = 2;
          ans[0][0] = i, ans[0][1] = p[x].u;
          ans[1][0] = j, ans[1][1] = p[x].v;
        }
      }
      if (x > 0) {
        long long tmp2 = Fabs(Sum - 2ll * a[i] - 2ll * a[j] + p[x - 1].val);
        if (tmp2 < sum) {
          sum = tmp2, tot = 2;
          ans[0][0] = i;
          ans[0][1] = p[x - 1].u;
          ans[1][0] = j;
          ans[1][1] = p[x - 1].v;
        }
      }
    }
  printf("%lld\n%lld\n", sum, tot);
  for (int i = 0; i < tot; i++) printf("%lld %lld\n", ans[i][0], ans[i][1]);
  return 0;
}
