#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("date.in");
ofstream out ("date.out");
int v[100000], lung[100000], pred [100000], n, max,a;
void sir ()
{
int max;
lung[1]=1;
for (int i=2; i<=n; i++)
{
max=0;
for (int j=1; j<i; j++)
{
if (v[j]<v[i])
if (lung[j]>max)
{
max=lung[j];
pred[i]=j;
}
}
lung[i]=1+max;
}
a = 1;
for (int i=2; i<=n; i++)
{
if (lung[i]>lung[a])
a=i;
}
}
void refac(int p)
{
if(pred[p] != 0)
refac(pred[p]);
out << v[p] << " ";
}
int main()
{
in>>n;
for (int i=1; i<=n; i++)
in>>v[i];
sir ();
out<<lung[a]<<"\n";
refac(a);
return 0;
}