#include <bits/stdc++.h>
const int N = 600000;
using namespace std;
int n, m, ar1[N], ar2[N];
long long s1, s2, tp;
pair<long long, long long> ans;
long long best_dif;
vector<int> v1, v2;
int ptr;
bool same_sign(long long a, long long b) {
  if (a == 0 || b == 0) return 1;
  if (a > 0 && b > 0) return 1;
  if (a < 0 && b < 0) return 1;
  return 0;
}
void check(int a, int b) {
  long long ns1 = s1 + b - a;
  long long ns2 = s2 + a - b;
  long long here = abs(ns1 - ns2);
  if (here < best_dif) {
    best_dif = here;
    tp = 2;
    ans = make_pair(a, b);
  }
  return;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> ar1[i];
  }
  cin >> m;
  for (int i = 1; i <= m; i++) {
    cin >> ar2[i];
  }
  for (int i = 1; i <= n; i++) {
    s1 += ar1[i];
  }
  for (int i = 1; i <= m; i++) {
    s2 += ar2[i];
  }
  best_dif = abs(s1 - s2);
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      long long ns1 = s1 + ar2[j] - ar1[i];
      long long ns2 = s2 + ar1[i] - ar2[j];
      long long here = abs(ns1 - ns2);
      if (here < best_dif) {
        best_dif = here;
        tp = 1;
        ans = make_pair(i, j);
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      v1.push_back(ar1[i] + ar1[j]);
    }
  }
  for (int i = 1; i <= m; i++) {
    for (int j = i + 1; j <= m; j++) {
      v2.push_back(ar2[i] + ar2[j]);
    }
  }
  sort(v1.begin(), v1.end());
  sort(v2.begin(), v2.end());
  ptr = 0;
  for (int i = 0; i < v1.size(); i++) {
    while (ptr + 1 < v2.size() &&
           (s1 - v1[i] + v2[ptr + 1]) - (s2 + v1[i] - v2[ptr + 1]) <= 0)
      ++ptr;
    for (int j = ptr - 2; j <= ptr + 2; j++) {
      if (j >= 0 && j < v2.size()) {
        check(v1[i], v2[j]);
      }
    }
  }
  cout << best_dif << endl;
  cout << tp << endl;
  if (tp == 0) {
  } else if (tp == 1) {
    cout << ans.first << " " << ans.second << endl;
  } else {
    pair<int, int> p1, p2;
    for (int i = 1; i <= n; i++) {
      for (int j = i + 1; j <= n; j++) {
        if (ar1[i] + ar1[j] == ans.first) p1 = make_pair(i, j);
      }
    }
    for (int i = 1; i <= m; i++) {
      for (int j = i + 1; j <= m; j++) {
        if (ar2[i] + ar2[j] == ans.second) p2 = make_pair(i, j);
      }
    }
    cout << p1.first << " " << p2.first << endl;
    cout << p1.second << " " << p2.second << endl;
  }
  cin.get();
  cin.get();
  return 0;
}
