#include <bits/stdc++.h>
using namespace std;
#define LIMIT 100000
bool visited[LIMIT] = {false};
map<int,int> M[LIMIT];
void dfs(int vertex)
{
visited[vertex] = true;
//cout << vertex << endl;
// Perform operations.
for (map<int,int>::iterator it=M[vertex].begin(); it!=M[vertex].end(); ++it)
{
if(visited[it->first] == false)
dfs(it->first);
}
}
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;
M[x][y] = 1;
M[y][x] = 1;
}
dfs(1) ;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKI2RlZmluZSBMSU1JVCAxMDAwMDAKIApib29sIHZpc2l0ZWRbTElNSVRdID0ge2ZhbHNlfTsKIAptYXA8aW50LGludD4gTVtMSU1JVF07CiAKdm9pZCBkZnMoaW50IHZlcnRleCkKewogICAgdmlzaXRlZFt2ZXJ0ZXhdID0gdHJ1ZTsKIAogICAgLy9jb3V0IDw8IHZlcnRleCA8PCBlbmRsOyAgIAogICAgLy8gUGVyZm9ybSBvcGVyYXRpb25zLgogICAgCiAgICBmb3IgKG1hcDxpbnQsaW50Pjo6aXRlcmF0b3IgaXQ9TVt2ZXJ0ZXhdLmJlZ2luKCk7IGl0IT1NW3ZlcnRleF0uZW5kKCk7ICsraXQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHZpc2l0ZWRbaXQtPmZpcnN0XSA9PSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICBkZnMoaXQtPmZpcnN0KTsKICAgICAgICAgICAgfQp9CiAKaW50IG1haW4oKSAKewogICAgaW50IG4seCx5LG07CiAgICBjaW4gPj4gbiA+PiBtOyAgICAgIC8vIE4gPSAgdmVydGljZXMsIE0gPSBlZGdlcwogCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKSAgLy9FZGdlcwogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICAgICAgTVt4XVt5XSA9IDE7CiAgICAgICAgICAgIE1beV1beF0gPSAxOwogICAgICAgIH0KIAogICAgZGZzKDEpICAgIDsKIAogICAgcmV0dXJuIDA7Cn0=