#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define maxsize 10
using namespace std;
typedef struct BTNode{
char data;
BTNode *lchild;
BTNode *rchild;
BTNode *parent;
}BTNode;
void create(BTNode *&p)
{
char k;
scanf("%c",&k);
if(k=='#') p=NULL;
else
{
p=(BTNode *)malloc(sizeof(BTNode));
p->data=k;
create(p->lchild);
create(p->rchild);
}
}
void addparent(BTNode *p,BTNode *q)
{
if(p!=NULL)
{
p->parent=q;
q=p;
addparent(p->lchild,q);
addparent(p->rchild,q);
}
}
void path_to_root(BTNode *p)
{
while(p!=NULL)
{
printf("%c ",p->data);
p=p->parent;
}
printf("\n");
}
void path(BTNode *p)
{
if(p!=NULL)
{
path_to_root(p);
path(p->lchild);
path(p->rchild);
}
}
int main()
{
BTNode *T=NULL;
create(T);
BTNode *q=NULL;
addparent(T,q);
path(T);
return 0;
}