#include<iostream>
#include<cstdio>
#include<ctime>
#include<cmath>
#include <queue>
#include <map>


using namespace std;

queue<int> niz[1000];
queue<int> sol;
long long br;
int mmin, pmin;

int main(){
    int n, x, y;
    scanf("%d", &n);
    for(int i=0; i<n; i++){
            scanf("%d", &x);
            br+=x;
            for(int j=0; j<x; j++) {
                    scanf("%d", &y);
                    niz[i].push(y);
                    }
            }
    
    for(int i=0; i<br; i++){
            mmin=0;
            for(int j=0; j<n; j++){
                    if(niz[j].empty())continue;
                    else if(mmin==0) {
                         mmin=niz[j].front();
                         pmin=j;
                         }
                    if(niz[j].front()<=mmin) {
                                          mmin=niz[j].front();
                                          pmin=j;
                    }
                    }
            sol.push(niz[pmin].front());
            niz[pmin].pop();
            }

            
    for(int i=0; i<br; i++) {
            cout << sol.front();
            if(i==br-1) cout << endl;
            else cout << ' ';
            sol.pop();
            }
            
            

//system("pause");
return 0;
}
