//计算每一层叶子节点个数
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
int N,M;//所有节点数和非叶子节点数
int maxlevel=0;
int num_of_eachlevel[100]={0};
vector[HTML_REMOVED]child[100];
void dfs(int curID,int curlevel){//当前节点和当前层数
if(curlevel>maxlevel)maxlevel=curlevel;
if(child[curID].size()>0){//当前节点有孩子
for(auto x:child[curID]){//孩子节点向下Dfs
dfs(x,curlevel+1);
}
}
else{//若无孩子节点
num_of_eachlevel[curlevel]++;//当前层数无孩子节点数+1
}
}
int main(){
int i,j;
cin>>N>>M;//N表示树中结点总数以及一个整数 M表示非叶子结点数。
for(i=0;i[HTML_REMOVED]>ID>>K;
while(K–){
cin>>j;//输入ID的k个孩子
child[ID].emplace_back(j);
}
}
dfs(1,1);
for(i=1;i<=maxlevel;i++){
if(i>1)cout<<’ ‘;
cout<<num_of_eachlevel[i];
}
return 0;
}