#include <iostream>
#include <stack>
#include <queue>
#include <vector>
using namespace std;
vector<int> graph[100];
void DFS(int start)
{
bool visited[100]={};
stack<int> s;
s.push(start);
int tops;
while(!s.empty())
{
tops = s.top();
//cout<<top<<" ";
s.pop();
if(!visited[tops])
{
visited[tops] = true;
cout<<tops<<" ";
for(int i=0; i<graph[tops].size(); i++)
{
s.push(graph[tops][i]);
}
}
}
}
int main()
{
int v, e;
cin>>v>>e;
for(int i=0; i<e; i++)
{
int v1, v2;
cin>>v1>>v2;
graph[v1].push_back(v2);
graph[v2].push_back(v1);
}
DFS(1);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD4gZ3JhcGhbMTAwXTsKCnZvaWQgREZTKGludCBzdGFydCkKewogICAgYm9vbCB2aXNpdGVkWzEwMF09e307CiAgICBzdGFjazxpbnQ+IHM7CiAgICBzLnB1c2goc3RhcnQpOwogICAgaW50IHRvcHM7CiAgICB3aGlsZSghcy5lbXB0eSgpKQogICAgewogICAgICAgIHRvcHMgPSBzLnRvcCgpOwogICAgICAgIC8vY291dDw8dG9wPDwiICI7CiAgICAgICAgcy5wb3AoKTsKICAgICAgICBpZighdmlzaXRlZFt0b3BzXSkKICAgICAgICB7CiAgICAgICAgICAgIHZpc2l0ZWRbdG9wc10gPSB0cnVlOwogICAgICAgICAgICBjb3V0PDx0b3BzPDwiICI7CiAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPGdyYXBoW3RvcHNdLnNpemUoKTsgaSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzLnB1c2goZ3JhcGhbdG9wc11baV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGludCB2LCBlOwogICAgY2luPj52Pj5lOwogICAgZm9yKGludCBpPTA7IGk8ZTsgaSsrKQogICAgewogICAgICAgIGludCB2MSwgdjI7CiAgICAgICAgY2luPj52MT4+djI7CiAgICAgICAgZ3JhcGhbdjFdLnB1c2hfYmFjayh2Mik7CiAgICAgICAgZ3JhcGhbdjJdLnB1c2hfYmFjayh2MSk7CiAgICB9CiAgICBERlMoMSk7Cn0KCg==