#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int poz, mg, p, n,a[100001],v[100001];
void cit()
{
int i;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
}
void scrie(int i, int ult, int lg){
if(lg>0)
if(a[i]<ult && v[i]==lg){
scrie(i-1, a[i], lg-1);
g<< a[i]<< " ";
}
else scrie(i-1,ult, lg);
}
void pd()
{
int i,m,j,p=0;
for(i=1;i<=n;i++)
{
m=0;
for(j=1;j<i; j++)
{
if(a[j]<a[i] && v[j]>m)
m=v[j];
}
v[i]=m+1;
if(v[i]>mg){mg=v[i];poz=i;}
}
g<<m<<endl;
scrie(poz,a[poz]+1,mg);
}
int main()
{
cit();
pd();
return 0;
}