#include<iostream>
#include<fstream>
using namespace std;
int L[100], N, a[100],k,i,j,maxim, Lmax,q,v[100];
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>N;
for(i=1;i<=N;i++)
f>>a[i];
k=N;
for(i=N;i>=1;i--)
{
maxim=0;
for(j=i+1;j<=N;j++)
if((L[j]>=maxim)&&(a[i]<=a[j]))
maxim=L[j];
L[k]=maxim+1;
k--;
}
Lmax=-10000;
for(i=1;i<=N;i++)
if(L[i]>Lmax)
Lmax=L[i];
g<<Lmax<<endl;
q=0; v[0]=-32000;
for(i=1;i<=N;i++)
{if((L[i]==Lmax)&&(a[i]>=v[q]))
{v[q]=a[i]; q++; Lmax--;}
}
for(i=1;i<=q;i++)
g<<v[i]<<" ";
f.close();
g.close();
return 0;
}