#include <bits/stdc++.h>
void ordenacionshell(int v[], int n);
int main() {
  int n, i, tam, ciel = 0, jiro = 0, m = 0, j;
  scanf("%d", &n);
  int v[n];
  for (i = 0; i < n; i++) {
    v[i] = 0;
  }
  for (i = 0; i < n; i++) {
    scanf("%d", &tam);
    int pila[tam];
    if (tam % 2 == 0) {
      for (j = 0; j < tam; j++) {
        scanf("%d", &pila[j]);
        if (j < tam / 2) {
          ciel = ciel + pila[j];
        } else {
          jiro = jiro + pila[j];
        }
      }
    } else {
      for (j = 0; j < tam; j++) {
        scanf("%d", &pila[j]);
        if (j < tam / 2) {
          ciel = ciel + pila[j];
        } else if (j > tam / 2) {
          jiro = jiro + pila[j];
        } else {
          v[m] = pila[j];
          m++;
        }
      }
    }
  }
  ordenacionshell(v, n);
  i = 0;
  while (i < m) {
    if (i % 2 == 0) {
      ciel = ciel + v[i];
    } else {
      jiro = jiro + v[i];
    }
    i++;
  }
  printf("%d %d", ciel, jiro);
  return 0;
}
void ordenacionshell(int v[], int n) {
  int intervalo, i, j, k;
  int temp;
  intervalo = n / 2;
  while (intervalo > 0) {
    for (i = intervalo; i < n; i++) {
      j = i - intervalo;
      while (j >= 0) {
        k = j + intervalo;
        if (v[j] >= v[k]) {
          j = -1;
        } else {
          temp = v[j];
          v[j] = v[k];
          v[k] = temp;
          j -= intervalo;
        }
      }
    }
    intervalo = intervalo / 2;
  }
}
