#include<iostream>
using namespace std;
const int maxn=1000010;
int L[maxn],R[maxn],v[maxn],ans=0,tmp=0;
int n,x,id;
void tree_sort(int i,int x)
{
tmp++;
if(x<v[i])
{
if(L[i]==0) {ans=max(ans,tmp);id++;v[id]=x;L[i]=id;return ;}
else tree_sort(L[i],x);
}
else
{
if(R[i]==0) {ans=max(ans,tmp);id++;v[id]=x;R[i]=id;return ;}
else tree_sort(R[i],x);
}
}
void houxu(int u)
{
if(!u) return ;
houxu(L[u]);
houxu(R[u]);
cout<<v[u]<<endl;
}
int main()
{
cin>>n;
cin>>x;
v[1]=x;
id=1;
for(int i=2;i<=n;++i)
{
cin>>x;
tmp=1;
tree_sort(1,x);
}
cout<<"deep="<<ans<<endl;
houxu(1);
putchar('\n');
return 0;
}