#include <bits/stdc++.h>
using namespace std;
int n,m,x,y,deg[100005],sol[100005],tot,ans[100005],ant;
struct node{
int u,v;
}e[100005];int cnt=0,head[100005];
void add(int u,int v){
e[++cnt].u=v;
e[cnt].v=head[u];
head[u]=cnt;
}
priority_queue<int,vector<int>,greater<int> > q;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>x>>y;
add(x,y);
deg[y]++;
}
tot=0;
for(int i=1;i<=n;i++){
if(deg[i]==0){
ans[++ant]=i;
tot++;
q.push(i);
}
}
while(!q.empty()){
int x=q.top();q.pop();
for(int i=head[x];i;i=e[i].v){
if(--deg[e[i].u]==0){
ans[++ant]=e[i].u;
tot++;
q.push(e[i].u);
}
}
}
if(tot==n)
for(int i=1;i<=ant;i++) cout<<ans[i]<<" ";
else cout<<-1<<endl;
return 0;
}
5 8
2 1
5 4
5 1
5 2
3 4
3 5
3 2
3 1
3 5 2 1 4
谢谢了