#include <bits/stdc++.h>
using namespace std;
void DFS(int source, vector<int> adjList[], vector<int> &visited, vector<int> &parent){
visited[source]=1;
cout<<source<<" ";
for(auto adjNode : adjList[source]){
if(!visited[adjNode]){
parent[adjNode]=source;
DFS(adjNode, adjList, visited, parent);
}
}
}
int main() {
int n,m;
cin>>n>>m;
vector<int> adjList[n];
vector<int> parent(n, 0);
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
adjList[x].push_back(y);
adjList[y].push_back(x);
}
int source=0;
vector<int> visited(n, 0);
for (int i=0;i<n;i++) {
if (!visited[i]) {
DFS(i, adjList, visited, parent);
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIERGUyhpbnQgc291cmNlLCB2ZWN0b3I8aW50PiBhZGpMaXN0W10sIHZlY3RvcjxpbnQ+ICZ2aXNpdGVkLCB2ZWN0b3I8aW50PiAmcGFyZW50KXsKCXZpc2l0ZWRbc291cmNlXT0xOwoJY291dDw8c291cmNlPDwiICI7Cglmb3IoYXV0byBhZGpOb2RlIDogYWRqTGlzdFtzb3VyY2VdKXsKCQlpZighdmlzaXRlZFthZGpOb2RlXSl7CgkJCXBhcmVudFthZGpOb2RlXT1zb3VyY2U7CgkJCURGUyhhZGpOb2RlLCBhZGpMaXN0LCB2aXNpdGVkLCBwYXJlbnQpOwoJCX0JCgl9Cn0KCmludCBtYWluKCkgewoJaW50IG4sbTsKCWNpbj4+bj4+bTsKCXZlY3RvcjxpbnQ+IGFkakxpc3Rbbl07Cgl2ZWN0b3I8aW50PiBwYXJlbnQobiwgMCk7Cglmb3IoaW50IGk9MDtpPG07aSsrKXsKCQlpbnQgeCx5OwoJCWNpbj4+eD4+eTsKCQlhZGpMaXN0W3hdLnB1c2hfYmFjayh5KTsKCQlhZGpMaXN0W3ldLnB1c2hfYmFjayh4KTsKCX0KCWludCBzb3VyY2U9MDsKCXZlY3RvcjxpbnQ+IHZpc2l0ZWQobiwgMCk7Cglmb3IgKGludCBpPTA7aTxuO2krKykgewogICAgICAgIGlmICghdmlzaXRlZFtpXSkgewogICAgICAgICAgICBERlMoaSwgYWRqTGlzdCwgdmlzaXRlZCwgcGFyZW50KTsKICAgICAgICB9CiAgICB9CglyZXR1cm4gMDsKfQ==