#include<iostream>
using namespace std;
char s[105];
int len = 0;
int cnt = 0;
typedef struct Node {
char data;
Node* lchild, * rchild;
}*BiTree, BiTNode;
void creat(BiTree& T)
{
if (cnt >= len) return;
if (s[cnt] == ' ')
{
T = NULL;
cnt++;
}
else
{
T = new BiTNode;
T->data = s[cnt];
cnt++;
creat(T->lchild);
creat(T->rchild);
}
}
void PreOrder(BiTree T)
{
if (T != NULL)
{
cout << T->data;
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
void InOrder(BiTree T)
{
if (T != NULL)
{
InOrder(T->lchild);
cout << T->data;
InOrder(T->rchild);
}
}
void PostOrder(BiTree T)
{
if (T != NULL)
{
PostOrder(T->lchild);
PostOrder(T->rchild);
cout << T->data;
}
}
int main()
{
while (cin >> s) {
len = strlen(s);
cnt = 0;
BiTree T;
creat(T);
PreOrder(T);
printf("\n");
InOrder(T);
printf("\n");
InOrder(T);
printf("\n");
}
return 0;
}