#include <bits/stdc++.h>
#include<string.h>
using namespace std;
struct tree
{
int date;
tree *left;
tree *right;
};
tree *creat(tree *T, int sum)
{
if(T==NULL)
{
T = new tree();
T->date = sum;
T->left = NULL;
T->right = NULL;
return T;
}
if(T->date > sum)
T->left = creat(T->left, sum);
else T->right = creat(T->right, sum);
return T;
}
int height(tree *T)
{
int LH, RH, H;
if(T == NULL) H = 0;
else
{
LH = height(T->left);
RH = height(T->right);
H = max(LH, RH)+1;
}
return H;
}
void show(tree *T)
{
if(T!=NULL)
{
cout<<T->date<<endl;
show(T->left);
show(T->right);
}
else return;
}
int main()
{
int n,i;
tree *root = NULL;
for(i = 0; i<10; i++)
{
cin>>n;
root = creat(root, n);
}
show(root);
cout<<endl;
cout<<height(root)<<endl;
return 0;
}