#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long long v[1002],i,maxi,lgmax[1002],n,succ[1002],lmaxi,p,pmax,j;
int main()
{
fin>>n;
for(i=1; i<=n; i++)
fin>>v[i];
lgmax[n]=1;
lmaxi=1;
for(i=n-1; i>0; i--)
{
maxi=0;
p=i;
for(j=i+1; j<=n; j++)
if(maxi<lgmax[j] && v[i]<v[j])
maxi=lgmax[j], p=j;
lgmax[i]=1+maxi;
succ[i]=p;
if(lgmax[i]>lmaxi) lmaxi=lgmax[i], pmax=i;
}
fout<<lmaxi<<"\n";
while(pmax!=succ[pmax])
fout<<v[pmax]<<" ", pmax=succ[pmax];
return 0;
}