#include <cstdio>
#include <iostream>
using namespace std;

struct TreeNode {
    int data;
    TreeNode* leftChild;
    TreeNode* rightChild;
};

void buildBST(TreeNode*& root, int data) {
    TreeNode *treeNode = new TreeNode; //在堆上新建结点
    treeNode->data = data;
    treeNode->leftChild = NULL;
    treeNode->rightChild = NULL;
    if(root == NULL){
        root = treeNode;
        return;
    }
    TreeNode *curNode = root;
    TreeNode *preNode = root;
    
    while(true){ 
        if(data > curNode->data){ //往右走
            preNode = curNode;
            curNode = curNode->rightChild;
            if(curNode == NULL){
                preNode->rightChild = treeNode;
                //curNode = treeNode; 这种写法是错误的
                break;
            }
        }else if(data < curNode->data){ //往左走
            preNode = curNode;
            curNode = curNode->leftChild;
            if(curNode == NULL){
                preNode->leftChild = treeNode;
                //curNode = treeNode;
                break;
            }
        }else{ //相同的元素,忽略
            break;
        }
    }
}

void PreOrder(TreeNode* treeNode) {
    if (treeNode == NULL) {
        return;
    }
    printf("%d ", treeNode->data);
    PreOrder(treeNode->leftChild);
    PreOrder(treeNode->rightChild);
}

void InOrder(TreeNode* treeNode) {
    if (treeNode == NULL) {
        return;
    }
    InOrder(treeNode->leftChild);
    printf("%d ", treeNode->data);
    InOrder(treeNode->rightChild);
}

void PostOrder(TreeNode* treeNode) {
    if (treeNode == NULL) {
        return;
    }
    PostOrder(treeNode->leftChild);
    PostOrder(treeNode->rightChild);
    printf("%d ", treeNode->data);
}

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        TreeNode* treeNode = NULL;
        int data;
        for (int i = 0; i < n; i++) {
            scanf("%d", &data);
            buildBST(treeNode, data);
        }
        PreOrder(treeNode);
        printf("\n");
        InOrder(treeNode);
        printf("\n");
        PostOrder(treeNode);
        printf("\n");
    }
}
// 64 位输出请用 printf("%lld")