#include using namespace std; using ll = long long; using ld = long double; using pll = pair; using vll = vector; using vld = vector; using vpll = vector; using vvll = vector; vvll graph; vector visited; vll dfs(ll v){ visited[v] = true; vll result{v}; for (ll w : graph[v]) if (!visited[w]){ vll child = dfs(w); result.insert(result.end(), child.begin(), child.end()); } reverse(result.begin(), result.end()); return result; } int main(){ ll n, m; cin >> n >> m; graph = vvll(n+1,vll{}); visited = vector(n+1,false); for (int i=0;i> x >> y; graph[x].push_back(y); graph[y].push_back(x); } vll result = dfs(1); for (ll i : result) cout << i << ' '; cout << endl; return 0; }