#include <bits/stdc++.h>
using namespace std;
void DFS(int start, vector<int> G[], vector<int>& visited) {
stack<int> stk;
stk.push(start); // Start DFS from this node
while (!stk.empty()) {
int node = stk.top();
stk.pop();
if (!visited[node]) {
// If node hasn't been visited, process it
cout << node << "\n"; // Visit the node (printing here)
visited[node] = 1; // Mark it as visited
// Push all unvisited neighbors of the current node onto the stack
for (auto u : G[node]) {
if (!visited[u]) {
stk.push(u);
}
}
}
}
}
int main() {
int n, m;
cin >> n >> m; // n = number of nodes, m = number of edges
vector<int> G[n+1]; // Graph adjacency list (1-based indexing)
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
G[u].push_back(v); // Add edge u -> v
G[v].push_back(u); // Add edge v -> u (since it's undirected)
}
vector<int> visited(n+1, 0); // Visited array to track visited nodes
DFS(1, G, visited); // Start DFS from node 1
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKdm9pZCBERlMoaW50IHN0YXJ0LCB2ZWN0b3I8aW50PiBHW10sIHZlY3RvcjxpbnQ+JiB2aXNpdGVkKSB7CiAgICBzdGFjazxpbnQ+IHN0azsKICAgIHN0ay5wdXNoKHN0YXJ0KTsgIC8vIFN0YXJ0IERGUyBmcm9tIHRoaXMgbm9kZQogICAgCiAgICB3aGlsZSAoIXN0ay5lbXB0eSgpKSB7CiAgICAgICAgaW50IG5vZGUgPSBzdGsudG9wKCk7CiAgICAgICAgc3RrLnBvcCgpOwogICAgICAgIAogICAgICAgIGlmICghdmlzaXRlZFtub2RlXSkgewogICAgICAgICAgICAvLyBJZiBub2RlIGhhc24ndCBiZWVuIHZpc2l0ZWQsIHByb2Nlc3MgaXQKICAgICAgICAgICAgY291dCA8PCBub2RlIDw8ICJcbiI7IC8vIFZpc2l0IHRoZSBub2RlIChwcmludGluZyBoZXJlKQogICAgICAgICAgICB2aXNpdGVkW25vZGVdID0gMTsgICAgLy8gTWFyayBpdCBhcyB2aXNpdGVkCiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBQdXNoIGFsbCB1bnZpc2l0ZWQgbmVpZ2hib3JzIG9mIHRoZSBjdXJyZW50IG5vZGUgb250byB0aGUgc3RhY2sKICAgICAgICAgICAgZm9yIChhdXRvIHUgOiBHW25vZGVdKSB7CiAgICAgICAgICAgICAgICBpZiAoIXZpc2l0ZWRbdV0pIHsKICAgICAgICAgICAgICAgICAgICBzdGsucHVzaCh1KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpIHsKICAgIGludCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsgIC8vIG4gPSBudW1iZXIgb2Ygbm9kZXMsIG0gPSBudW1iZXIgb2YgZWRnZXMKICAgIHZlY3RvcjxpbnQ+IEdbbisxXTsgIC8vIEdyYXBoIGFkamFjZW5jeSBsaXN0ICgxLWJhc2VkIGluZGV4aW5nKQoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbTsgaSsrKSB7CiAgICAgICAgaW50IHUsIHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICBHW3VdLnB1c2hfYmFjayh2KTsgIC8vIEFkZCBlZGdlIHUgLT4gdgogICAgICAgIEdbdl0ucHVzaF9iYWNrKHUpOyAgLy8gQWRkIGVkZ2UgdiAtPiB1IChzaW5jZSBpdCdzIHVuZGlyZWN0ZWQpCiAgICB9CgogICAgdmVjdG9yPGludD4gdmlzaXRlZChuKzEsIDApOyAgLy8gVmlzaXRlZCBhcnJheSB0byB0cmFjayB2aXNpdGVkIG5vZGVzCiAgICBERlMoMSwgRywgdmlzaXRlZCk7ICAvLyBTdGFydCBERlMgZnJvbSBub2RlIDEKICAgIAogICAgcmV0dXJuIDA7Cn0=