/*只需要把拓扑排序里存入度为0的结点的队列改成greater的优先队列 */#include<queue>#include<vector>#include<algorithm>#include<iostream>#include<cstring>using namespace std;vector<int> graph[125000];int indegree[501];vector<int> TuoPu(int n){priority_queue<int,vector<int>,greater<int>> q;for(int i=1;i<=n;i++){if(indegree[i]==0)q.push(i);}vector<int> ans;while(!q.empty()){int u=q.top();q.pop();ans.push_back(u);for(int i=0;i<graph[u].size();i++){int v=graph[u][i];indegree[v]--;if(indegree[v]==0)q.push(v);}}return ans;}int main(){int n,m;while(cin>>n>>m){memset(graph,0,sizeof(graph));memset(indegree,0,sizeof(indegree));for(int i=1;i<=m;i++){int from,to;cin>>from>>to;graph[from].push_back(to);indegree[to]++;} } vector<int> ans=TuoPu(n);for(int i=0;i<ans.size();i++){ cout<<ans[i]<<&quot; &quot;;}cout<<endl;}