#include
using namespace std;
class node{
public:
node *right;
node *left;
int data;
node(int d)
{
    left=NULL;
    right=NULL;
    data=d;
}
};
node * build()
{
int d;
cin>>d;
if(d==-1)
{
    return NULL;
}
node *k=new node(d);
k->data=d;
k->left=build();
k->right=build();
return k;
}
void print(node *root)
{
if(root==NULL)
{
return;
}
cout<data<<" ";
print(root->left);
print(root->right);
return;
}
void printIn(node *root)
{
if(root=NULL)
{
return;
}
printIn(root->left);
cout<<root->data<<" ";
printIn(root->right);
return;
}
void printPost(node * root)
{
if(root=NULL)
{
return;
}
printPost(root->left);
printPost(root->right);
cout<<root->data<<" ";
return;
}
int main()
{
node *root=build();
cout<<"PreOrder: ";
print(root);
cout<<endl;
cout<<"InOrder: ";
printIn(root);
cout<<endl;
cout<<"PostOrder: ";
printPost(root);
}
