#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using ll = long long; using P = std::pair; template std::ostream& operator<<(std::ostream& os, std::pair pa) { return os << "[" << pa.first << ", " << pa.second << "]"; } template std::ostream& operator<<(std::ostream& os, std::vector vec) { os << "{"; for (int i = 0; i < vec.size(); i++) os << vec[i] << (i + 1 == vec.size() ? "" : ", "); os << "}"; return os; } #define rep(i, a, b) for (ll(i) = (a); i < (b); i++) #define all(i) i.begin(), i.end() #define debug(i) std::cerr << "debug " << i << std::endl // const ll MOD = 998244353; const ll MOD = 1e9 + 7; int main() { std::cin.tie(0); std::ios::sync_with_stdio(false); ll n,max=0; std::cin>>n; std::vector p(n),now(n),ans; std::vector> a(n); rep(i,0,n){ std::cin>>p[i]; now[i]=p[i]; max=std::max(max,p[i]); rep(j,0,p[i]){ ll temp; std::cin>>temp; a[i].push_back(temp); } } rep(_,0,max){ rep(i,0,n){ if(now[i]>0){ ans.push_back(a[i][p[i]-now[i]]); now[i]--; } } } rep(i,0,ans.size()){ std::cout<