#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void DFS(int node,vector<vector<int>>&graph,vector<bool>&visited,vector<int>&parent){
cout<<node+1<<" ";
visited[node]=true;
for(auto u:graph[node]){
if(!visited[u]){
parent[u]=node;
DFS(u,graph,visited,parent);
}
}
}
int main(){
int n,m;
cin>>n>>m;
vector<vector<int>>graph(n);
vector<bool>visited(n,false);
vector<int>parent(n,-1);
int i=1;
while(i<=m){
int u,v;
cin>>u>>v;
u--,v--;
graph[u].push_back(v);
graph[v].push_back(u);
i++;
}
DFS(0,graph,visited,parent);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgREZTKGludCBub2RlLHZlY3Rvcjx2ZWN0b3I8aW50Pj4mZ3JhcGgsdmVjdG9yPGJvb2w+JnZpc2l0ZWQsdmVjdG9yPGludD4mcGFyZW50KXsKCWNvdXQ8PG5vZGUrMTw8IiAiOwoJdmlzaXRlZFtub2RlXT10cnVlOwoJCglmb3IoYXV0byB1OmdyYXBoW25vZGVdKXsKCQlpZighdmlzaXRlZFt1XSl7CgkJCXBhcmVudFt1XT1ub2RlOwoJCQlERlModSxncmFwaCx2aXNpdGVkLHBhcmVudCk7CgkJfQoJfQp9CmludCBtYWluKCl7CglpbnQgbixtOwoJY2luPj5uPj5tOwoJCgl2ZWN0b3I8dmVjdG9yPGludD4+Z3JhcGgobik7Cgl2ZWN0b3I8Ym9vbD52aXNpdGVkKG4sZmFsc2UpOwoJdmVjdG9yPGludD5wYXJlbnQobiwtMSk7CgkKCWludCBpPTE7Cgl3aGlsZShpPD1tKXsKCQlpbnQgdSx2OwoJCWNpbj4+dT4+djsKCQl1LS0sdi0tOwoJCWdyYXBoW3VdLnB1c2hfYmFjayh2KTsKCQlncmFwaFt2XS5wdXNoX2JhY2sodSk7CgkJaSsrOwoJfQoJCglERlMoMCxncmFwaCx2aXNpdGVkLHBhcmVudCk7CglyZXR1cm4gMDsKfQ==