#include<iostream>#include<cstring>#include<vector>#include<stdio.h>#include<algorithm>
using namespace std;int n,m,k;int fa[100001];int hob[100001];intfindFa(int x){
if(fa[x]== x)return x;returnfindFa(fa[x]);}voiduni(int a,int b){
int f1 =findFa(a);int f2 =findFa(b);if(f1 != f2)
fa[f1]= f2;}int ans[10001];intcmp(int a,int b){
return a>b;}intmain(){
cin>>n;for(int i =1;i <= n ;i++)
fa[i]= i;for(int i =1; i <= n ;i++){
int num;scanf("%d:",&num);for(int j =0; j< num ;j++){
int x;cin>>x;if(hob[x]==0)
hob[x]= i;elseuni(hob[x], i);}}int cnt =0;for(int i =1; i <= n ;i++){
if(fa[i]== i) cnt++;
ans[findFa(i)]++;}sort(ans,ans +10001,cmp);
cout<<cnt<<endl;for(int i =0;i<cnt;i++){
if(i ==0)
cout<<ans[i];else
cout<<" "<<ans[i];}return0;}