#include<bits/stdc++.h> using namespace std; long long n,m,d[200010],u,v,visit[200010],start[200010]; vector<vector<int> > a(2000001); //visit start a 0 1 2 3 4 5 // 1 1 2 3 // 1 2 1 //1 0 3 4 // 0 4 2 // 0 5 void dfs(int x){ cout<<x<<" "; if(start[x]==a[x].size()) return; if(visit[x]==1){ cout<<x<<" "; visit[x]=0; } start[x]=start[x]+1; dfs(a[x][start[x-1]]); } int main(){ cin>>n>>m; for(int i=1;i<=m;i++) { cin>>u>>v; if(u==v) visit[u]=1; else{ d[u]++; d[v]++; a[u].push_back(v); } } long long temp=0,first=INT_MAX;//奇数数量 for(int i=1;i<=n;i++){ if(d[i]%2!=0) { first=min(first,d[i]); temp++; } } if(temp!=0&&temp!=2){ cout<<"No"; return 0; } for(int i=1;i<=n;i++){//每一行 if(a[i].size()>0){ sort(a[i].begin(),a[i].end()); } } if(temp==2) dfs(first); else dfs(1); return 0; } /************************************************************** Problem: 1000 User: zhuangxiangyu Language: C++ Result: Runtime Error ****************************************************************/