/* Kevin Zhao
 * Legion of Learners
 * Senior Division
 * Contest #4 2019-2020
 */

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  freopen("patolli", "r", stdin);
  int board[53];
  int primes[15] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47 };
  int squares[5] = { 9, 16, 25, 36, 49 };
  int htv[9][2] = { { 6, 8 }, { 11, 13 }, { 16, 18 }, { 21, 23 }, { 26, 28 }, { 34, 36 }, { 39, 41 }, { 44, 46 }, { 49, 51 } };
  for (int q = 0; q < 5; q++) {
    fill(board, board + 53, 0);
    for (int i = 0; i < 3; i++) {
      int index;
      cin >> index;
      board[index] = 1;
    }
    for (int i = 0; i < 3; i++) {
      int index;
      cin >> index;
      board[index] = 2;
    }
    int r;
    cin >> r;
    for (int i = 0; i < r; i++) {
      int roll, target = 1, start = 0;
      cin >> roll;
      if (i % 2 == 1) target = 2;
      for (int j = 1; j <= 52; j++) {
        if (board[j] == target) {
          start = j;
          break;
        }
      }
      board[start] = 0;
      int end = start + roll;
      if (end > 52 || board[end] != 0) {
        board[start] = target;
        continue;
      }
      bool isPrime = false;
      for (int j = 0; j < 15; j++) {
        if (end == primes[j]) {
          isPrime = true;
          break;
        }
      }
      if (isPrime && board[end] == 0) {
        int startsix = end + 1, endsix = end + 6;
        for (int k = startsix; k <= endsix; k++) {
          if (k > 52 || board[k] != 0) break;
          end++;
        }
        if (end != 52) board[end] = target;
        continue;
      }
      bool isSqr = false;
      for (int j = 0; j < 5; j++) {
        if (end == squares[j]) {
          isSqr = true;
          break;
        }
      }
      if (isSqr && board[end] == 0) {
        int startsix = end - 1, endsix = end - 6;
        for (int k = startsix; k >= endsix; k--) {
          if (board[k] != 0) break;
          end--;
        }
        board[end] = target;
        continue;
      }
      bool done = false;
      for (int j = 0; j < 9; j++) {
        if (start <= htv[j][0] && end >= htv[j][1]) {
          done = true;
          bool found = false;
          for (int k = end; k >= start; k--) {
            if (board[k] != 0) continue;
            if (k % roll == 0) {
              if (k != 52) board[k] = target;
              found = true;
              break;
            }
          }
          if (!found) board[start] = target;
          break;
        }
      }
      if (done) continue;
      if (end != 52) board[end] = target;
    }
    int sum1 = 0, sum2 = 0;
    for (int i = 1; i <= 52; i++) {
      if (board[i] == 1) sum1 += i;
      else if (board[i] == 2) sum2 += i;
    }
    cout << sum1 << " " << sum2 << "\n";
  }
  return 0;
}