#include <iostream>
#include <algorithm>
using namespace std;

int duljine[1000], broj[10000], niz[1000][1000];
int n, L, dulj=0, priv[1];

void nakraj(int arrayno)
{
	int lenght=duljine[arrayno];
	niz[arrayno][0]=0;
	for(int i=0; i<lenght; i++)
	swap(niz[arrayno][i],niz[arrayno][i+1]);
}

int main()
{
	priv[0]=100000;
	cin>>n;
	for(int i=0; i<n; i++)
	{
		cin>>L;
		dulj=dulj+L;
		duljine[i]=L;
		for(int j=0; j<L; j++)
			cin>>niz[i][j];
	}
	for(int j=0; j<dulj; j++) 
	{
		for(int i=0; i<n; i++)
			if(niz[i][0]<priv[0] && niz[i][0]!=0)
			{
				priv[0]=niz[i][0];
				priv[1]=i;
			}
	broj[j]=priv[0];
	nakraj(priv[1]);
	priv[0]=100000000;
	}
	for(int i=0; i<dulj; i++){
	cout<<broj[i]<<" ";}
	return 0;
}
	
