#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MX = 3e5+10;
int main() {
int n; cin >> n;
int a[2][MX], sz[2];
sz[0] = 0; sz[1] = 1;
a[1][0] = 0;
for (int i = 0; i < n; i++) {
int x; cin >> x;
int idx = i%2, prev = 1-idx;
sz[idx] = 0;
for (int k = 0; k < x; k++) {
int p; cin >> p;
for (int j = 0; j < sz[prev]; j++) {
int add = a[prev][j];
a[idx][sz[idx]++] = p+add;
}
}
}
int idx = 1-n%2;
vector<int> ans;
for (int i = 0; i < sz[idx]; i++) {
ans.push_back(a[idx][i]);
}
sort(ans.begin(), ans.end());
for (int i = 0; i < ans.size(); i++) {
if (i == 0 || ans[i] != ans[i-1]) {
cout << ans[i] << " ";
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTVggPSAzZTUrMTA7CiAKaW50IG1haW4oKSB7CglpbnQgbjsgY2luID4+IG47CglpbnQgYVsyXVtNWF0sIHN6WzJdOwoJc3pbMF0gPSAwOyBzelsxXSA9IDE7CglhWzFdWzBdID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJaW50IHg7IGNpbiA+PiB4OwoJCWludCBpZHggPSBpJTIsIHByZXYgPSAxLWlkeDsKCQlzeltpZHhdID0gMDsKCQlmb3IgKGludCBrID0gMDsgayA8IHg7IGsrKykgewoJCQlpbnQgcDsgY2luID4+IHA7CgkJCWZvciAoaW50IGogPSAwOyBqIDwgc3pbcHJldl07IGorKykgewoJCQkJaW50IGFkZCA9IGFbcHJldl1bal07CgkJCQlhW2lkeF1bc3pbaWR4XSsrXSA9IHArYWRkOwoJCQl9CgkJfQoJfQoJaW50IGlkeCA9IDEtbiUyOwoJdmVjdG9yPGludD4gYW5zOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBzeltpZHhdOyBpKyspIHsKCQlhbnMucHVzaF9iYWNrKGFbaWR4XVtpXSk7Cgl9Cglzb3J0KGFucy5iZWdpbigpLCBhbnMuZW5kKCkpOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBhbnMuc2l6ZSgpOyBpKyspIHsKCQlpZiAoaSA9PSAwIHx8IGFuc1tpXSAhPSBhbnNbaS0xXSkgewoJCQljb3V0IDw8IGFuc1tpXSA8PCAiICI7CgkJfQoJfQoJcmV0dXJuIDA7Cn0g