#include<bits/stdc++.h>
using namespace std;
int graph[1001][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();
Q.pop();
for(int j = 1; j <= node; j++)
{
if(visit[j] == 0 && graph[x][j] != 0)
{
visit[j] = 1;
cout<<j<<" ";
Q.push(j);
}
}
}
}
int main()
{
cin>>node>>edge;
int u, v;
for(int i = 1; i <= edge; i++)
{
cin>>u>>v;
graph[u][v] = 1;
graph[v][u] = 1;
}
BFS(1);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGdyYXBoWzEwMDFdWzEwMDFdOwppbnQgdmlzaXRbMTAwMV07CmludCBub2RlLCBlZGdlOwoKdm9pZCBCRlMoaW50IHN0YXJ0KQp7CiAgICAvL0luaXRpYWwgc3RlcAogICAgdmlzaXRbc3RhcnRdID0gMTsKICAgIGNvdXQ8PHN0YXJ0PDwiICI7CiAgICBxdWV1ZTxpbnQ+UTsKICAgIFEucHVzaChzdGFydCk7CgogICAgLy9SZXBlYXRpbmcgU3RlcAogICAgd2hpbGUoIVEuZW1wdHkoKSkKICAgIHsKICAgICAgICBpbnQgeCA9IFEuZnJvbnQoKTsKICAgICAgICBRLnBvcCgpOwogICAgICAgIGZvcihpbnQgaiA9IDE7IGogPD0gbm9kZTsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgaWYodmlzaXRbal0gPT0gMCAmJiBncmFwaFt4XVtqXSAhPSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2aXNpdFtqXSA9IDE7CiAgICAgICAgICAgICAgICBjb3V0PDxqPDwiICI7CiAgICAgICAgICAgICAgICBRLnB1c2goaik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgoKICAgIH0KCgp9CgppbnQgbWFpbigpCnsKICAgIGNpbj4+bm9kZT4+ZWRnZTsKICAgIGludCB1LCB2OwogICAgZm9yKGludCBpID0gMTsgaSA8PSBlZGdlOyBpKyspCiAgICB7CiAgICAgICAgY2luPj51Pj52OwogICAgICAgIGdyYXBoW3VdW3ZdID0gMTsKICAgICAgICBncmFwaFt2XVt1XSA9IDE7CiAgICB9CgogICAgQkZTKDEpOwoKfQo=