#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
****************************************************************/