#include <bits/stdc++.h>
using namespace std;
int g[110][110],in[110],out[110],n,m,u,v;
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>u>>v;  //u是父节点,v是子节点
		g[u][v]=1;  //邻接矩阵标记为1
		out[u]++;  //记录这个节点的父节点
		in[v]++;  //记录它的子节点
	}
	int k=1;
	for(int i=1;i<=n;i++){
		if(in[i]==0) cout<<i<<endl;//只要没有父节点,就是根
		if(out[k]<out[i]) k=i;  //寻找孩子最多的节点
	}
	cout<<k<<endl;
	for(int j=1;j<=n;j++) if(g[k][j]==1) cout<<j<<' ';  //输出孩子最多的节点的孩子们
	return 0;
}

0 comments

No comments so far...