#include <bits/stdc++.h>
using namespace std;
long long a[2005], b[2005];
vector<pair<long long, pair<int, int> > > bb;
long long diff = 0L;
bool good(long long x, int place) {
  if (place >= bb.size())
    return false;
  else
    return diff + 2 * (bb[place].first - x) <= 0;
}
int find_(long long x) {
  int place = -1, jump = bb.size();
  while (jump > 0) {
    if (good(x, place + jump)) place += jump;
    jump /= 2;
  }
  while (good(x, place + 1)) place++;
  return place;
}
bool sorter(pair<long long, pair<int, int> > a,
            pair<long long, pair<int, int> > b) {
  return a.first < b.first;
}
int main() {
  int n;
  scanf("%i", &n);
  for (int e = 0; e < n; e++) scanf("%I64d", &a[e]);
  int m;
  scanf("%i", &m);
  for (int e = 0; e < m; e++) scanf("%I64d", &b[e]);
  for (int e = 0; e < n; e++) diff += a[e];
  for (int e = 0; e < m; e++) diff -= b[e];
  long long acc = diff;
  vector<pair<int, int> > rr;
  for (int e = 0; e < n; e++) {
    for (int ee = 0; ee < m; ee++) {
      if (abs(diff + 2 * (b[ee] - a[e])) < abs(acc)) {
        acc = diff + 2 * (b[ee] - a[e]);
        rr.clear();
        rr.push_back(make_pair(e, ee));
      }
    }
  }
  for (int e = 0; e < m; e++) {
    for (int ee = e + 1; ee < m; ee++) {
      bb.push_back(make_pair(b[e] + b[ee], make_pair(e, ee)));
    }
  }
  sort(bb.begin(), bb.end(), sorter);
  for (int e = 0; e < n; e++) {
    for (int ee = e + 1; ee < n; ee++) {
      long long itm = a[e] + a[ee];
      int pl = find_(itm);
      if (pl < (int)bb.size() - 1) {
        if (abs(diff + 2 * (bb[pl + 1].first - itm)) < abs(acc)) {
          acc = diff + 2 * (bb[pl + 1].first - itm);
          rr.clear();
          rr.push_back(make_pair(e, bb[pl + 1].second.first));
          rr.push_back(make_pair(ee, bb[pl + 1].second.second));
        }
      }
      if (pl > -1) {
        if (abs(diff + 2 * (bb[pl].first - itm)) < abs(acc)) {
          acc = diff + 2 * (bb[pl].first - itm);
          rr.clear();
          rr.push_back(make_pair(e, bb[pl].second.first));
          rr.push_back(make_pair(ee, bb[pl].second.second));
        }
      }
    }
  }
  printf("%I64d\n%i\n", abs(acc), rr.size());
  for (auto e : rr) printf("%i %i\n", e.first + 1, e.second + 1);
  return 0;
}
