#include #include #include #include #include #define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(i,m,n) for(int i=(m);i<(n);++i) #define REP(i,n) FOR(i,0,n) #define ALL(v) (v).begin(),(v).end() const int INF = 0x3f3f3f3f; const long long LINF = 0x3f3f3f3f3f3f3f3fLL; const double EPS = 1e-8; const int MOD = 1000000007; // 998244353; const int dy[] = {1, 0, -1, 0}, dx[] = {0, -1, 0, 1}; /*-------------------------------------------------*/ int main() { cin.tie(nullptr); ios::sync_with_stdio(false); // freopen("input.txt", "r", stdin); int n; cin >> n; vector > a(n); int cnt = 0; REP(i, n) { int p; cin >> p; cnt += p; while (p--) { int ai; cin >> ai; a[i].emplace_back(ai); } reverse(ALL(a[i])); } vector ans; while (cnt > 0) { REP(i, n) { if (!a[i].empty()) { ans.emplace_back(a[i].back()); a[i].pop_back(); --cnt; } } } REP(i, ans.size()) cout << ans[i] << (i + 1 == ans.size() ? '\n' : ' '); return 0; }