#include <bits/stdc++.h>
using namespace std;
#define LIMIT 100000
bool visited[LIMIT] = {false};
vector<int> V[LIMIT];
void dfs(int vertex)
{
visited[vertex] = true;
//cout << vertex << endl;
// Perform operations.
for(int i = 0; i < V[vertex].size(); i++)
{
if(visited[V[vertex][i]] == false)
dfs(V[vertex][i]);
}
}
int main()
{
int n,x,y,m;
cin >> n >> m; // N = vertices, M = edges
for(int i = 0; i < m; i++) //Edges
{
cin >> x >> y;
V[x].push_back(y);
V[y].push_back(x);
}
dfs(1) ;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIExJTUlUIDEwMDAwMAoKYm9vbCB2aXNpdGVkW0xJTUlUXSA9IHtmYWxzZX07Cgp2ZWN0b3I8aW50PiBWW0xJTUlUXTsKCnZvaWQgZGZzKGludCB2ZXJ0ZXgpCnsKICAgIHZpc2l0ZWRbdmVydGV4XSA9IHRydWU7CiAgICAKICAgIC8vY291dCA8PCB2ZXJ0ZXggPDwgZW5kbDsgICAKICAgIC8vIFBlcmZvcm0gb3BlcmF0aW9ucy4KICAgIAogICAgZm9yKGludCBpID0gMDsgaSA8IFZbdmVydGV4XS5zaXplKCk7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKHZpc2l0ZWRbVlt2ZXJ0ZXhdW2ldXSA9PSBmYWxzZSkKICAgICAgICAgICAgICAgIGRmcyhWW3ZlcnRleF1baV0pOwogICAgICAgIH0KfQoKaW50IG1haW4oKSAKewogICAgaW50IG4seCx5LG07CiAgICBjaW4gPj4gbiA+PiBtOyAgICAgIC8vIE4gPSAgdmVydGljZXMsIE0gPSBlZGdlcwogICAgCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKSAgLy9FZGdlcwogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICAgICAgVlt4XS5wdXNoX2JhY2soeSk7CiAgICAgICAgICAgIFZbeV0ucHVzaF9iYWNrKHgpOwogICAgICAgIH0KICAgICAgICAKICAgIGRmcygxKSAgICA7CiAgICAgICAgCiAgICByZXR1cm4gMDsKfQo=