#include <bits/stdc++.h>
using namespace std;
int N, M;
long long A[2001];
long long B[2001];
long long SumA;
long long SumB;
long long BestDiff;
int BestChanges;
pair<int, int> BestChange[2];
long long diff(long long a, long long b) { return abs(a - b); }
void solve(vector<pair<long long, pair<int, int>>>& A,
           vector<pair<long long, pair<int, int>>>& B, int changes) {
  int ALen = A.size();
  int BLen = B.size();
  int i = 0;
  int j = 0;
  while (i < ALen && j < BLen) {
    long long sum_a_after = SumA - A[i].first + B[j].first;
    long long sum_b_after = SumB - B[j].first + A[i].first;
    long long diff_after = diff(sum_a_after, sum_b_after);
    if (BestDiff > diff_after) {
      BestDiff = diff_after;
      BestChanges = changes;
      BestChange[0].first = A[i].second.first;
      BestChange[0].second = B[j].second.first;
      BestChange[1].first = A[i].second.second;
      BestChange[1].second = B[j].second.second;
    }
    if (sum_a_after > sum_b_after) {
      i++;
    } else {
      j++;
    }
  }
}
int main() {
  scanf("%d", &N);
  for (int i = 0; i < N; ++i) {
    scanf("%lld", &A[i]);
    SumA += A[i];
  }
  scanf("%d", &M);
  for (int i = 0; i < M; ++i) {
    scanf("%lld", &B[i]);
    SumB += B[i];
  }
  BestDiff = diff(SumA, SumB);
  BestChanges = 0;
  vector<pair<long long, pair<int, int>>> SA;
  vector<pair<long long, pair<int, int>>> SB;
  for (int i = 0; i < N; ++i) SA.push_back(make_pair(A[i], make_pair(i, i)));
  for (int i = 0; i < M; ++i) SB.push_back(make_pair(B[i], make_pair(i, i)));
  sort(SA.begin(), SA.end());
  sort(SB.begin(), SB.end());
  solve(SA, SB, 1);
  vector<pair<long long, pair<int, int>>> SA2;
  vector<pair<long long, pair<int, int>>> SB2;
  for (int i = 0; i < N; ++i) {
    for (int j = i + 1; j < N; ++j) {
      SA2.push_back(make_pair(A[i] + A[j], make_pair(i, j)));
    }
  }
  for (int i = 0; i < M; ++i) {
    for (int j = i + 1; j < M; ++j) {
      SB2.push_back(make_pair(B[i] + B[j], make_pair(i, j)));
    }
  }
  sort(SA2.begin(), SA2.end());
  sort(SB2.begin(), SB2.end());
  solve(SA2, SB2, 2);
  printf("%lld\n", BestDiff);
  printf("%d\n", BestChanges);
  for (int i = 0; i < BestChanges; ++i) {
    printf("%d %d\n", BestChange[i].first + 1, BestChange[i].second + 1);
  }
  return 0;
}
