具体代码#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e3+10;
int fa[N],a[N],b[N];
void init(int n){
for(int i=1;i<=N;i++)
fa[i]=i;
}
int find(int x){
if(x==fa[x])return x;
else return fa[x]=find(fa[x]);
}
void merge(int a,int b){
int faA=find(a),faB=find(b);
if(faA!=faB)fa[faA]=faB;
}
int main(){
int n;
cin>>n;
init(n);
for(int i=1;i<=n;i++){
int k,s;
char t;
cin>>k>>t>>a[i];
for(int j=0;j<k-1;j++){
cin>>s;
merge(a[i],s);
}
}
for(int i=1;i<=n;i++){
b[find(a[i])]++;
}
int cn=0;
for(int i=1;i<=1000;i++){
if(b[i])cn++;
}
sort(b,b+1001,greater<int>());
cout<<cn<<endl;
for(int i=0;i<cn;i++){
if(i)cout<<" ";
cout<<b[i];
}
return 0;
}