水题
#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;
}