#include <bits/stdc++.h>
using namespace std;
int n,m,d[100005],a[100005],mi,pred[100005];
void print(int i)
{
if (d[i] != 1)
{
print(pred[i]);
}
printf("%d ",a[i]);
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for (int i = 0; i<n; ++i)
{
scanf("%d",&a[i]);
d[i] = 1;
}
for (int i = 1; i<n; ++i)
{
for (int j = 0; j<i; ++j)
{
if (a[i] > a[j] && d[i] < d[j] + 1)
{
pred[i] = j;
d[i] = d[j] +1;
}
}
}
m = mi = 0;
for (int i = 0; i<n; ++i)
{
if (m < d[i])
{
m = d[i];
mi = i;
}
}
printf("%d \n",d[mi]);
print(mi);
}