var edges: array of array of integer; N, x, y, i: integer; procedure f(v, p: integer); var j, u: integer; begin write(v + 1, ' '); for j := 0 to length(edges[v]) - 1 do begin u := edges[v][j]; if u <> p then begin f(u, v); write(v + 1, ' '); end; end; end; begin read(N); setlength(edges, N); for i := 1 to N - 1 do begin read(x, y); setlength(edges[x - 1], length(edges[x - 1]) + 1); setlength(edges[y - 1], length(edges[y - 1]) + 1); edges[x - 1][length(edges[x - 1]) - 1] := y - 1; edges[y - 1][length(edges[y - 1]) - 1] := x - 1; end; f(0, -1); end.