#include<bits/stdc++.h>
using namespace std;
int n,cnt[100001],ccnt,q,m;
pair<int,int> b[200001];
vector<int> a[100001],ans;
bool cmp(pair<int,int> a,pair<int,int> b){
return a.second<b.second;
}
void dfs(int d){
for(int i=0;i<a[d].size();i++){
if(a[d][i]==0) continue;
int x=a[d][i];
a[d][i]=0;
dfs(x);
}
ans.push_back(d);
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>b[i].first>>b[i].second;
cnt[b[i].first]++;
cnt[b[i].second]++;
}
sort(b+1,b+m+1,cmp);
for(int i=1;i<=m;i++) a[b[i].first].push_back(b[i].second);
for(int i=1;i<=100000;i++){
if(cnt[i]%2==1) ccnt++;
}
if(ccnt!=0&&ccnt!=2){
cout<<"No";
return 0;
}
if(ccnt==0){
for(int i=1;i<=100000;i++){
if(cnt[i]>0){
q=i;
break;
}
}
}else{
for(int i=1;i<=100000;i++){
if(cnt[i]%2==1){
q=i;
break;
}
}
}
dfs(q);
for(int i=ans.size()-1;i>=0;i--) cout<<ans[i]<<" ";
return 0;
}