#include<bits/stdc++.h>
using namespace std;
vector<int>graph[1001];
int visit[1001];
int node, edge;
void BFS(int start)
{
//Initial Step
visit[start] = 1;
//cout<<start<<" ";
queue<int>Q;
Q.push(start);
//Repeating Step
while(!Q.empty())
{
int x = Q.front();
cout<<x<<" ";
Q.pop();
for(int j = 0; j < graph[x].size(); j++)
{
int nd = graph[x][j];
if(visit[nd] == 0)
{
visit[nd] = 1;
//cout<<nd<<" ";
Q.push(nd);
}
}
}
}
int main()
{
cin>>node>>edge;
int u, v;
for(int i = 1; i <= edge; i++)
{
cin>>u>>v;
graph[u].push_back(v);
graph[v].push_back(u);
}
BFS(1);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD5ncmFwaFsxMDAxXTsKaW50IHZpc2l0WzEwMDFdOwppbnQgbm9kZSwgZWRnZTsKCnZvaWQgQkZTKGludCBzdGFydCkKewogICAgLy9Jbml0aWFsIFN0ZXAKICAgIHZpc2l0W3N0YXJ0XSA9IDE7CiAgICAvL2NvdXQ8PHN0YXJ0PDwiICI7CiAgICBxdWV1ZTxpbnQ+UTsKICAgIFEucHVzaChzdGFydCk7CgogICAgLy9SZXBlYXRpbmcgU3RlcAogICAgd2hpbGUoIVEuZW1wdHkoKSkKICAgIHsKICAgICAgICBpbnQgeCA9IFEuZnJvbnQoKTsKICAgICAgICBjb3V0PDx4PDwiICI7CiAgICAgICAgUS5wb3AoKTsKCiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IGdyYXBoW3hdLnNpemUoKTsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgaW50IG5kID0gZ3JhcGhbeF1bal07CiAgICAgICAgICAgIGlmKHZpc2l0W25kXSA9PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2aXNpdFtuZF0gPSAxOwogICAgICAgICAgICAgICAgLy9jb3V0PDxuZDw8IiAiOwogICAgICAgICAgICAgICAgUS5wdXNoKG5kKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICB9CgoKCn0KCmludCBtYWluKCkKewogICAgY2luPj5ub2RlPj5lZGdlOwogICAgaW50IHUsIHY7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IGVkZ2U7IGkrKykKICAgIHsKICAgICAgICBjaW4+PnU+PnY7CiAgICAgICAgZ3JhcGhbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGdyYXBoW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KCiAgICBCRlMoMSk7Cgp9Cgo=