#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long long v[100005] , x[100005];
int Mac;
int main()
{
int n;
fin >> n;
for(int i = 1 ; i <= n ; i++)
fin >> v[i];
x[n] = 1;
for(int i = n - 1 ; i >= 1 ; i--)
{
int mac = 0;
for(int j = i + 1 ; j <= n ; j++)
if(v[j] > v[i] && x[j] > mac) mac = x[j];
x[i] = mac + 1;
if(x[i] > Mac) Mac = x[i];
}
fout << Mac << '\n';
for(int i = 1 ; i <= n ; i++)
if(x[i] == Mac) fout << v[i] << " " , Mac--;
return 0;
}