#include #include #include #include using namespace std; const int oo = 1e9; int main() { int n,m; cin >> n >> m; vector> adj(n); for(int i=0;i> u >> v; --u,--v; adj[u].push_back(v); adj[v].push_back(u); } vector,2>> d(n,{oo,oo,oo,oo}); vector> q; q.reserve(n*2); auto push = [&](int at, int from, int di) { if(d[at][1][0]>di) { d[at][1] = {di,from}; q.push_back({at,from,di}); } sort(d[at].begin(),d[at].end()); }; push(0,-1,0); for(int i=0;i ans = {0}; while(at!=-1) { ans.push_back(at); for(int j=0;j<2;++j) { if(d[at][j][0]==di and d[at][j][1]!=to) { to=at; at = d[at][j][1]; di--; break; } } } cout << ans.size() << '\n'; for(auto& i : ans) { cout << i+1 << ' '; } cout << '\n'; } }