#include <bits/stdc++.h>
using namespace std;
int n,m,dist[100005][2];
vector<int> g[100005],p[100005];
void dfs(int s,int e,int sum){
cout<<s<<' ';
if(sum==m-1){
cout<<e;
return;
}
int minn=n+1,w=0;
for(int i=0;i<g[s].size();i++)
if(g[s][i]<minn && !p[s][i])minn=g[s][i],w=i;
p[s][w]=1;
dfs(minn,e,sum+1);
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
g[u].push_back(v);
p[u].push_back(0);
dist[u][1]++,dist[v][0]++;
}
int s=0,e=0;
for(int i=1;i<=n;i++){
if(dist[i][0]!=dist[i][1]){
if(abs(dist[i][0]-dist[i][1])>1){
cout<<"No";
return 0;
}else if(dist[i][0]+1==dist[i][1] && !s)s=i;
else if(dist[i][0]+1==dist[i][1] && s){
cout<<"No";
return 0;
}else if(dist[i][1]+1==dist[i][0] && !e)e=i;
else if(dist[i][1]+1==dist[i][0] && e){
cout<<"No";
return 0;
}
}
}
if((s && !e) || (!s && e)){
cout<<"No";
return 0;
}else if(!s && !e)s=e=1;
dfs(s,e,0);
return 0;
}