#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll=long long; template using V = vector; template using P = pair; using vll = V; using vvll = V; #define rep(i, k, n) for (ll i=k; i<(ll)n; ++i) #define REP(i, n) rep(i, 0, n) #define ALL(v) v.begin(),v.end() template inline bool chmax(T& a, T b) {if (a inline bool chmin(T& a, T b) {if (a>b) {a=b; return true;} return false;} const ll MOD = 1000000007; const ll HIGHINF = (ll)1e18; int main() { cin.tie(0); ios::sync_with_stdio(false); ll n; cin >> n; vvll a(n); vll p(n); REP(i, n) { cin >> p[i]; a[i].resize(p[i]); REP(j, p[i]) cin >> a[i][j]; } vll ai(n, 0); vll ans; bool is_exist = true; while (is_exist) { is_exist = false; REP(i, n) { if (ai[i] == p[i]) continue; else { is_exist = true; ans.push_back(a[i][ai[i]]); ai[i]++; } } } REP(i, ans.size()) cout << ans[i] << (i==ans.size()-1?'\n':' '); return 0; }