#include <iostream> #include <cstring> # include <queue> using namespace std; const int N=105; int a[N][N]; int in[N],s[N]; int n,m,u,v; void Topo() { queue<int> q; int cnt; for(int i=1; i<=n; i++) if(___(1)___) q.push(i); while(!q.empty()) { int cur = q.front(); q.pop(); s[cnt++]=___(2)___; for (int i=1; i<=n; i++) { if (___(3)___) { ___(4)___; if (in[i]==0) q.push(i); } } } } int main() { memset(in,0,sizeof(in)); memset(a, 0,sizeof(a)); cin>>n>>m; for (int i=0; i<m; i++) { cin>>u>>v; in[v]++; ___(5)___; } Topo(); for (int i=0; i<n; i++) { if (i) cout<<' '; cout<<s[i]; } cout<<endl; return 0; }