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.