program acmshuu;
type piont=^node;
     node=record
       left:piont;
       root:char;
       right:piont;
     end;
var n,ch:char;
zh:piont;

procedure init(zh:piont);
 var p:piont;
  begin
    read(ch);
    if ch='#' then zh^.left:=nil
     else
     begin
       new(p);
       zh^.left:=p;
       p^.root:=ch;
       init(p);
     end;
    read(ch);
    if ch='#' then zh^.right:=nil
     else
      begin
       new(p);
       zh^.right:=p;
       p^.root:=ch;
       init(p);
      end;
  end;

procedure bianli(zh:piont);
  begin
    if zh^.left<>nil then bianli(zh^.left);
    write(zh^.root,' ');
    if zh^.right<>nil then bianli(zh^.right);
  end;

begin
  while not eof do
    begin
      new(zh);
      read(n);
      zh^.root:=n;
      init(zh);
      readln;
      bianli(zh);
      writeln;
    end;
end.
/**************************************************************
	Problem: 2215
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/