#include<bits/stdc++.h>
using namespace std;
int n,m,r[100005],c[100005],ts,t,start=1,head[100005];
queue <int> ans;
vector <int> ma[100005];
void dfs(int now){
ans.push(now);
for(int i=head[now];i<ma[now].size();i++){
head[now]++;
dfs(ma[now][i]);
i=head[now];
}
return ;
}
int main(){
cin>>n>>m;
for(int i=0;i<m;i++){
int u,v;
cin>>u>>v;
ma[u].push_back(v);
r[v]++;
c[u]++;
}
for(int i=1;i<=n;i++){
sort(ma[i].begin(),ma[i].end());
}
for(int i=1;i<=n;i++){
if(r[i]!=c[i]){
t++;
if(r[i]==c[i]+1) ;
else if(r[i]+1==c[i]){
ts++;
start=i;
}
}
}
if(t==0||(t==2&&ts==1)){
dfs(start);
while(!ans.empty()){
cout<<ans.front()<<" ";
ans.pop();
}
}
else{
cout<<"No";
}
return 0;
}