#include <bits/stdc++.h>
using namespace std;
struct BstNode
{
long data;
BstNode* left;
BstNode* right;
};
BstNode* GetNewNode(long data)
{
BstNode* newNode = new BstNode();
newNode->data = data;
newNode->left = newNode->right = NULL;
return newNode;
}
BstNode* Insert(BstNode* root, long data)
{
if(root==NULL)
{
root = GetNewNode(data);
}
else if(data <= root->data)
{
root->left = Insert(root->left, data);
}
else
{
root->right = Insert(root->right, data);
}
return root;
}
void printPostOrder(BstNode* root)
{
if(root==NULL)
{
return;
}
printPostOrder(root->left);
printPostOrder(root->right);
printf("%ld\n", root->data);
}
int main()
{
BstNode* root = NULL;
long n, data,i;
while(scanf("%ld", &data)!=EOF)
{
root = Insert(root, data);
}
printPostOrder(root);
return 0;
}