#include <fstream>
using namespace std;
int r[2][100001];
int main()
{
ifstream mama("scmax.in");
ofstream tata("scmax.out");
int n,x[100001],maxim[100001],i,m=1,nr=1,j,k,l,ok;
mama>>n;
mama>>x[1];
r[0][1]=1; r[1][1]=1; maxim[1]=1;
for(i=2;i<=n;i++)
{
mama>>x[i]; l=0;
for(j=i-1;j>=1;j--)
if(x[i]>x[j] and l < r[1][j] and maxim[r[0][j]]==r[1][j])
{
l=r[1][j];
k=j;
}
if(l==0) {r[0][i]=nr+1; ;nr++; maxim[nr]=1; r[1][i]=1;}
else {r[0][i]=r[0][k]; maxim[r[0][k]]++;r[1][i]=r[1][k]+1;}
if(r[1][i]>m) {m=r[1][i]; ok=i;}
}
tata<<m<<'\n';
for(i=1;i<=n;i++)
if(r[0][i]==r[0][ok]) tata<<x[i]<<" ";
return 0;
}