水题
#include<bits/stdc++.h> using namespace std; typedef pair<int,int> piir; typedef long long ll; const int maxn = 1e2+5; const int INF = 0x3f3f3f3f; int n,m; int in[maxn]; vector<int> G[maxn],ans; queue<int> q; void top(){ while(!q.empty()) q.pop(); for(int i=1;i<=n;i++) if(in[i]==0) q.push(i); while(!q.empty()){ int u=q.front();q.pop(); ans.push_back(u); for(auto v : G[u]){ in[v]--; if(in[v]==0) q.push(v); } } } void init(){ memset(in,0,sizeof(in)); ans.clear(); for(int i=1;i<=n;i++) G[i].clear(); } int main(){ //freopen("in.txt","r",stdin); while(scanf("%d%d",&n,&m) && n+m){ init(); for(int u,v,i=1;i<=m;i++){ scanf("%d%d",&u,&v); G[u].push_back(v); in[v]++; } top(); for(auto it : ans) printf("%d ",it); printf("\n"); } return 0; }