#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
const int N = 10010;
vector<int> G[N];
int f[N];
vector<int>res;
vector<int> s;
void dfs(int u)
{
for(int i=0;i<G[u].size();i++)
{
s.push_back(G[u][i]);
dfs(G[u][i]);
s.pop_back();
}
if(res.size() < s.size())
res = s;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int k;cin>>k;
while(k--)
{
int x;
cin>>x;
G[i].push_back(x);
f[x] = 1;
}
sort(G[i].begin(),G[i].end());
}
for(int i=0;i<n;i++)
{
if(!f[i])
{
s.push_back(i);
dfs(i);
}
}
cout<<res.size()<<endl;
for(int i=0;i<res.size() -1 ;i++) cout<<res[i]<<" "; cout<<res[res.size() - 1];
}