#include <fstream>
#include <vector>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
const int N = 100001, M = 500001;
int n, m, viz[M];
vector<int> ad[N], sol;
vector<pair<int,int>> muchii;
void dfs(int nod)
{
while (!ad[nod].empty())
{
int v = ad[nod].back();
ad[nod].pop_back();
if (!viz[v])
{
viz[v] = 1;
dfs(muchii[v].first ^ muchii[v].second ^ nod);
}
}
sol.push_back(nod);
}
int main()
{
fin>>n>>m;
int x,y;
for(int i=0;i<m;++i)
{
fin>>x>>y;
ad[x].push_back(i);
ad[y].push_back(i);
muchii.push_back(make_pair(x, y));
}
dfs(1);
for(int i=0;i<sol.size()-1;++i)
fout<<sol[i]<<" ";
return 0;
}