/*** author: yuji9511 ***/ #include using namespace std; typedef long long ll; typedef pair lpair; const ll MOD = 1e9 + 7; const ll INF = 1e18; #define rep(i,m,n) for(ll i = (m); i < (n); i++) #define rrep(i,m,n) for(ll i = (m); i >= (n); i--) #define printa(x,n) for(ll i = 0; i < n; i++){ cout << (x[i]) << " \n"[i==n-1];}; void print() {} template void print(Head&& head, Tail&&... tail){ cout << head << " \n"[sizeof...(tail) == 0]; print(forward(tail)...);} int main(){ cin.tie(0); ios::sync_with_stdio(false); ll N; cin >> N; ll P[1010]; queue A[1010]; rep(i,0,N){ cin >> P[i]; rep(j,0,P[i]){ ll tmp; cin >> tmp; A[i].push(tmp); } } vector ans; while(1){ bool end = true; rep(i,0,N){ if(not A[i].empty()){ end = false; ll v = A[i].front(); ans.push_back(v); A[i].pop(); } } if(end) break; } printa(ans, ans.size()); }